Structured Query Language ( SQL ) är en metod för att hantera data som lagras i en databas . SQL och besläktade språk som ofta används för att hantera hemsida abonnemang och e - handel . En SQL- injektion är ett sätt att använda en missbildad SQL-fråga på en webbplats för att få kontroll över SQL-databas eller tillgång till skyddad information , t.ex. användarnamn listor , lösenord och e-postadresser . Ändra din programmering praxis kan skydda din webbplats från SQL injection attacker . Instruktioner
1
Välj en SQL- bibliotek eller ramverk som inte tillåter overifierade frågor ansvarar för SQL injektioner . Gemensam Svaghet Räkning rekommenderar persistens skikt, såsom Hibernate och Enterprise Java Beans , som skyddar från SQL-injektion när de installeras och används på rätt sätt .
2
Process SQL-frågor med lagrade procedurer , frågor som accepterar bara en parameter eller andra beredda uttalanden istället för öppna frågor. Undvik dynamiskt skapar SQL frågesträngarna .
3
Undvik att köra kod med orimliga privilegier . Inte all kod behöver köras genom ett konto med root eller administratörsbehörighet. Detta kommer att minska graden av nedsatt SQL-fråga .
4
Upprepa säkerhetskontrollen och validering av indata på både klientsidan och serversidan . Angripare kan ändra värden i transit eller på användarens dator efter indatavalidering har utförts .
5
Escape specialtecken från SQL-frågor . Dessa kan omfatta specialtecken , t.ex. citat eller aktörer , såsom likhetstecknet och vitt utrymme .
6
Antag all input är skadlig eller missbildad . Istället för att använda en svart lista över oacceptabla strängar för SQL-frågor , använda en vitlista över kända, väl -formaterade förfrågningar .
7
Limit ingång till en uppsättning fasta ingångsvärden , såsom i fallet med en lista över stater eller länder , om möjligt.
8
Limit felmeddelanden till endast minimal information. Angripare kan använda detaljerade felmeddelanden för att få mer information om ditt system . Logga uttryckligt felet till en server log snarare än att visa det för användaren .
9
Använd en brandvägg för att försvara sig mot vissa SQL injection attacker . Använd välrenommerade brandväggar som är inställda och underhålls på rätt sätt . En brandvägg upphäver inte behovet av ordentlig planering och kommer inte att skydda från alla sårbarheter .