Cuprins
Există multe tipuri de atacuri pe care le putem primi în aplicațiile noastre, una dintre cele mai frecvente și care poate genera o cantitate mare de daune este Injecție SQLAcest atac constă în găsirea vulnerabilităților în modul în care gestionăm interogările împotriva bazelor de date pentru a extrage informații sau a insera valori care ar putea afecta funcționalitatea acestuia.Pentru a ne proteja împotriva acestui tip de atac, trebuie mai întâi să știm în ce constă, în acest fel putem învăța ce tip de precauții trebuie să luăm.
După cum am menționat, acest atac face ca baza noastră de date să nu funcționeze corect, pentru aceasta atacatorul introduce date care fac ca interogările noastre să eșueze în funcție de anumite vulnerabilități, cu aceasta atacatorul poate încerca obțineți schemele din tabelele noastre sau introduceți date care pot compromite operațiunea, cum ar fi introduceți un utilizator pentru a accesa secțiunea administrativă a aplicației noastre.
Una dintre cele mai frecvente modalități este că introducem parametrii direct pe măsură ce îi primim de la controlere, de exemplu avem o căutare pe categorii și primim de la controler identificatorul unei categorii de căutat, dacă trece direct fără a o curăța poate genera un atac care arată atacatorului toate categoriile existente.
Să ne uităm la următorul cod nesigur:
MARI
Putem vedea cum în linia 6 construim condiția de căutare și apoi în linia 10 O transmitem direct metodei care construiește interogarea, un ochi neexperimentat poate să nu vadă nicio problemă, dar dacă un atacator introduce următorul parametru: „1 sau 1 = 1” ai putea obține listarea întregului nostru tabel.Cum să ne protejăm?Modul de a ne proteja în acest caz, parcurge două etape de bază, primul este că nu putem permite ca datele să fie executate direct pe măsură ce le primim, pentru aceasta, înainte de interogare, trebuie să curățăm parametrul cu o metodă care caută caractere ilegale și, în cazul găsirii acestora, trimiteți utilizatorul la o pagină de 404 sau pagina nu a fost gasita.
Să vedem în următorul cod cum putem filtra ceea ce primim:
Aici trecem în revistă cu un frază regulată Lăsați doar numerele să primească controlerul nostru, altfel trimitem un mesaj, fiecare își poate face versiunea, dar important este să controlăm ce va primi aplicația noastră.
al doilea pas pentru a evita atacurile este nu lucrați cu metacaracterul "*" și limităm întotdeauna interogările atunci când așteptăm o înregistrare, astfel evităm expunerea tuturor datelor în cazul în care cineva reușește să depășească previziunile noastre.
Prindeți excepțiiÎn cele din urmă, dacă un parametru ilegal intră în aplicația noastră, trebuie să evităm cu orice preț să iasă o urmă a erorii, deoarece are date sensibile din instalarea noastră și poate fi folosită împotriva noastră, de aceea trebuie să ne asigurăm întotdeauna de a captura excepții și trimiteți un mesaj personalizat care nu conține multe detalii, deoarece aceste detalii pot fi văzute în mediul de dezvoltare.
După cum am putut vedea, cunoașterea atacurilor ne oferă o perspectivă diferită asupra modului în care ne putem proteja aplicația și cum să facem pentru a oferi mai multă securitate utilizatorilor noștri.V-a plăcut și ați ajutat acest tutorial?Puteți recompensa autorul apăsând acest buton pentru a-i oferi un punct pozitiv