„Securizat prin proiectare” este o metodologie pentru crearea de aplicații sau sisteme de calculator în care toate aspectele software-ului sunt dezvoltate în mod inerent într-un mod care face dificil sau imposibil ca un utilizator rău intenționat să deterioreze, să atace sau să compromită sistemul. În multe cazuri, software-ul care este securizat prin proiectare este planificat de la concepție pentru a închide chiar și cele mai mici găuri de securitate în funcțiile elementare și pentru a utiliza tehnici clasice de încredere în timpul fazei de codificare pentru a se asigura că nu există defecte într-un produs finit. Unele dintre principalele domenii care sunt în centrul atenției ingineriei securizate prin proiectare sunt intrarea utilizatorului sau a clientului, comunicațiile securizate și validarea de bază pentru a se asigura că anumite tipuri de atacuri devin imposibile. Deși nicio aplicație informatică nu este imună la toate atacurile rău intenționate, un sistem securizat prin proiectare are un avantaj distinct față de sistemele care utilizează biblioteci de securitate externe sau se bazează pe securitatea unui mediu înconjurător, cum ar fi un sistem de operare, deoarece proiectarea software-ul este creat pentru a preveni și a conține atacurile de exploatare.
Una dintre cele mai vulnerabile zone ale oricărei aplicații computerizate, din cauza naturii sale imprevizibile, este intrarea utilizatorului. Intrarea care nu este validată, este utilizată fără verificarea erorilor sau este acceptată orbește din orice sursă, poate folosi funcționarea interioară a unui sistem împotriva lui însuși pentru a expune date sensibile sau pentru a provoca blocarea sistemului. Atunci când o aplicație este securizată prin proiectare, intrarea utilizatorului este de obicei validată într-un fel, verificată pentru secvențe rău intenționate sau chiar convertită într-un format sigur, astfel încât să poată fi procesată fără a vă face griji cu privire la comportamentul imprevizibil care ar putea rezulta din procesarea implicită a unor combinații de caractere.
Problema introducerii utilizatorului devine mai complexă într-un sistem securizat prin proiectare, atunci când software-ul este un server care acceptă input de la un client printr-o rețea. Unii atacatori pot intercepta mesaje valide de la un client către un server sau pot falsifica cu totul un client, așa că de obicei sunt folosite alte metode decât criptarea proprietară, deoarece un atacator care interceptează mesajele ar putea rupe cu ușurință criptarea. Metodele mai eficiente de securitate în cadrul proiectării unui program includ restricționarea informațiilor pe care o trimite un client și limitarea capacității unui server sau modul în ceea ce poate sau nu poate face pe cont propriu.
Prin combinarea modularității software cu principiul cel mai mic privilegiu, un sistem care este securizat prin proiectare poate împiedica atacatorii să compromită complet un sistem prin delegarea sarcinilor între module care nu au neapărat capacitatea de a efectua o singură acțiune distructivă pe cont propriu. În acest fel, pot fi puse în aplicare măsuri de protecție și seifuri care pot permite unui sistem să se recupereze în siguranță de la o intruziune. Acest concept este greu de încorporat într-o aplicație care nu utilizează principii care sunt sigure prin proiectare, deoarece necesită ca întreaga arhitectură a programului să fie orientată către obiectivul de securitate.