Hvordan beskytte SQL fra Injiser Statements

Hvordan beskytte SQL fra Injiser Statements


Structured Query Language (SQL) er en metode for å håndtere data som er lagret i en database. SQL og beslektede språk blir ofte brukt til å administrere nettstedet 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, som brukerlister, passord og e-postadresser. Endre dine programmeringspraksis kan beskytte ditt nettsted fra SQL-injeksjon angrep.

Bruksanvisning

1 Valgte en SQL bibliotek eller rammeverk som ikke tillater ubekreftede spørsmål ansvarlig for SQL-injeksjoner. Common Weakness Enumeration anbefaler utholdenhet lag, som Hibernate og Enterprise Java Beans, som beskytter fra SQL-injeksjon når det installeres og brukes riktig.

2 Prosess SQL-spørringer ved hjelp av lagrede prosedyrer, spørringer som godtar bare en parameter eller andre tilberedte uttalelser i stedet for åpent spørsmål. Unngå dynamisk bygge SQL søkestrenger.

3 Unngå å kjøre kode med overdreven privilegier. Ikke all kode må kjøres med en konto med rot eller administratorrettigheter. Dette vil redusere alvorlighetsgraden av noen kompromittert SQL-spørring.

4 Gjenta sikkerhetskontrollen og validering av inndata både på klientsiden og serversiden. Angripere kan endre verdiene i transitt eller på brukerens datamaskin etter innspill validering 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 tomrom.

6 Anta alle innspill er skadelig eller feil. I stedet for å bruke en svarteliste over uakseptable strenger for SQL-spørringer, kan du bruke en hviteliste kjente, godt formatert spørringer.

7 Begrens innspill til et sett av faste inngangsverdier, for eksempel i tilfelle av en liste med stater eller land, når det er mulig.

8 Begrens feilmeldinger til kun minimalt med informasjon. Angripere kan bruke detaljerte feilmeldinger for å få mer informasjon om systemet. Logg eksplisitt feilen til en server log i stedet for å vise den 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.