Structured Query Language (SQL) er en metode til at styre data lagret i en database. SQL og beslægtede sprog bruges ofte til at styre website abonnementer og e-handel . En SQL-injektion er en metode til at bruge en misdannet SQL-forespørgsel på en hjemmeside for at få kontrol over SQL database eller adgang til beskyttede oplysninger , såsom bruger lister , adgangskoder og e-mailadresser . Ændre din programmering praksis kan beskytte din hjemmeside fra SQL-injektion angreb . Instruktioner
1
Vælg en SQL bibliotek eller ramme, som ikke tillader ubekræftede forespørgsler ansvarlig for SQL injektioner. Fælles Svaghed Enumeration anbefaler persistens lag, såsom Hibernate og Enterprise Java Beans , der beskytter mod SQL-injektion , når den installeres og bruges korrekt.
2
Process SQL-forespørgsler ved hjælp af lagrede procedurer , forespørgsler , der accepterer kun en parameter eller andre tilberedte udsagn i stedet for open -ended forespørgsler. Undgå dynamisk konstruere SQL søgestrenge .
3
Undgå at køre kode med overdrevne privilegier. Ikke al kode skal køres af en konto med root eller administrator privilegier. Dette vil mindske sværhedsgraden af enhver kompromitteret SQL-forespørgsel.
4
Gentag security check og validering af input på både klientsiden og serversiden . Angribere kan ændre værdier i transit eller på brugerens computer efter inputvalidering er blevet udført.
5.
undslippe specialtegn fra SQL-forespørgsler. Disse kan omfatte specialtegn , såsom citater eller operatører , såsom lighedstegnet og hvide rum .
6
Antag alle input er skadelig eller misdannet . I stedet for at bruge en sortliste over uacceptable strenge til SQL-forespørgsler , brug en whitelist af kendte, vel - formaterede forespørgsler.
7
Limit input til et sæt faste inputværdier , som i tilfælde af en liste over stater eller lande , når det er muligt .
8
Limit fejlmeddelelser til kun minimal information. Angribere kan bruge detaljerede fejlmeddelelser for at få mere information om dit system. Log eksplicit fejl til en server log snarere end at vise det til brugeren.
9
Brug en firewall til at forsvare sig mod nogle SQL-injektion angreb . Brug velrenommerede firewalls , der er setup og vedligeholdes korrekt. En firewall ikke ophæve behovet for en ordentlig programmering og vil ikke beskytte mod alle sårbarheder.