Structured Query Language ( SQL) er en metode for å administrere data som er lagret i en database . SQL og beslektede språk blir ofte brukt til å administrere nettsider abonnementer og e -handel . En SQL-injeksjon er en metode for å bruke en misformet SQL-spørring på et nettsted for å få kontroll over SQL database eller tilgang til beskyttet informasjon , for eksempel bruker lister , passord og e-postadresser . Endre dine programmering praksis kan beskytte din nettside fra SQL- injeksjon angrep . Instruksjoner
en
Valgte et SQL bibliotek eller rammeverk som ikke tillater ubekreftede spørringer ansvarlig for SQL- injeksjoner . Felles Svakhet Enumeration anbefaler utholdenhet lag , som Hibernate og Enterprise Java Beans , som beskytter fra SQL-injeksjon når det installeres og brukes riktig.
2
Process SQL-spørringer som bruker lagrede prosedyrer , spørringer som godtar bare en parameter eller andre tilberedte uttalelser i stedet for åpne spørringer. Unngå dynamisk bygge SQL- søkestrenger .
3
Unngå å kjøre kode med overdreven privilegier. Ikke all kode må kjøres av en konto med root eller administrator privilegier. Dette vil redusere alvorlighetsgraden av noen kompromittert SQL-spørringen .
4
Gjenta sikkerhetskontrollen og validering av inndata både på klientsiden og serversiden . Angripere kan endre verdiene i transitt eller på brukerens datamaskin etter validering av inndata er utført.
5
Escape spesialtegn fra SQL- spørringer. Disse kan inneholde spesialtegn , for eksempel sitater eller operatører , som for eksempel likhetstegnet og mellomrom .
6
Anta alle innspill er skadelig eller misformet . I stedet for å bruke en svarteliste over uakseptable strenger for SQL-spørringer , bruker en hviteliste kjente , godt formaterte spørringer.
7
Limit innspill til et sett av faste input verdier , for eksempel i tilfelle av en liste over stater eller land , når det er mulig .
8
Limit feilmeldinger til bare minimal informasjon. Angripere kan bruke detaljerte feilmeldinger for å få mer informasjon om systemet ditt . Logg eksplisitt feilen til en server log snarere enn å vise det til brukeren .
9
Bruk en brannmur for å forsvare seg mot noen SQL -injeksjon angrep . Bruk anerkjente brannmurer som er oppsett og vedlikeholdes riktig. En brannmur opphever ikke behovet for riktig programmering og vil ikke beskytte mot alle sårbarheter .