SQL injekcija
SQL injekcija (angl. SQL injection) – paplitęs tinklalapių ir programų, dirbančių su duomenų bazėmis, užvaldymo būdas. Užvaldymas pagrįstas specialaus SQL kodo įterpimu į užklausą. Tokia užklausa, priklausomai nuo duomenų bazės valdymo sistemos ir kitų dalykų, gali leisti:
- perskaityti lentelių turinį;
- pašalinti, pakeisti ir pridėti duomenis lentelėje;
- skaityti (rašyti) failus, esančius atakuojamame serveryje;
- vykdyti komandas atakuojamame serveryje.
Kaip apsisaugoti?
- rūpintis kokybišku informacinių sistemų programavimu;
- filtruoti SQL užklausos eilutes ir skaičius;
- taikyti sudėtingesnius būdus SQL užklausos kontrolės būdus.
Tam, kad apsisaugoti nuo šio tipo atakų, reikia patikrinti kiekvieną argumentą, perdudodamą SQL užklausai. Galima naudoti PHP funkciją mysql_real_escape_string(), o skaitinėms reikšmėms patikrinti, ar tai tikrai skaičius, naudojant is_numeric() arba typecast'inant kintamąjį į skaičių, naudojant settype() arba (int)$kintamasis.
Plačiau: Wikipedijoje