SQL injection



SQL injektsioon Rakenduse andmebaasikihi turvanõrkus, mida põhjustab SQL-lausesse manustatud dünaamiliselt genereeritud stringiliteraalide ebakorrektne pagu. Tegemist on üldisema turvanõrkuste klassi ühe realisatsiooniga, kus üks programmi- või skriptikeel on manustatud teise sisse.

Kui näiteks veebilehele sisselogimise vormi sisestada õige kasutajanimi ja parooli lahtrisse kirjutada "’OR 1=1", siis genereeritakse SQL-lause

SELECT UserList.Username
FROM UserList
WHERE
UserList.Username = ’Username’
AND UserList.Password = ’Password’ OR 1=1’

mis annab alati tulemuseks TRUE ja avab juurdepääsu andmebaasile.

SQL-injektsiooni takistamine ei ole raske, antud näites tuleks lihtsalt vormi sisestatud stringidest ülakomad välja filtreerida