Kaj je injekcija SQL?

Injekcija strukturiranega jezika poizvedb (SQL) je vrsta napada, ki se skoraj vedno izvaja na spletnem mestu, ki temelji na bazi podatkov. Gre za vstavljanje zlonamerne kode v poizvedbe SQL spletnega mesta, da bi motili upravljanje podatkov z uničenjem, spreminjanjem ali razkrivanjem podatkov, ki so shranjeni v tabelah baze podatkov, ki poganja spletno mesto. SQL je standardni programski jezik, ki se uporablja za ustvarjanje, posodabljanje in pridobivanje podatkov, ki so shranjeni v bazah podatkov.

Nevarnosti napadov z injekcijo SQL so številne in pogosto zelo uničujoče, če so uspešno izvedene. Občutljivi podatki, kot so številke kreditnih kartic, zdravstvene kartoteke osebe, uporabniška imena in gesla za račune, kot so spletno bančništvo in e-pošta, pa tudi različne vrste identifikacijskih številk so lahko izpostavljene kibernetičnim kriminalcem. Čeprav je kraja podatkov verjetno glavni cilj vsakega, ki poskuša uporabiti injekcijo SQL, to ni edina motivacija za uporabo te ali katere koli druge tehnike vbrizgavanja kode, kot je skriptiranje med spletnimi mesti. Obiskovalci spletnega mesta, ki prikazujejo informacije, ki jim niso všeč, lahko poskusijo z napadi z injekcijo SQL, da onemogočijo spletno mesto, ukradejo podatke ali spremenijo podatke, da uničijo poslanstvo ljudi za stranjo.

Včasih napad z injekcijo SQL na spletno mesto poskuša nezadovoljni obiskovalec, ki so mu lastniki spletnega mesta morda prepovedali njegov ali njen račun, ki zavida priljubljenost spletnega mesta ali skuša uničiti spletno poslovanje nekoga, za katerega meni, da bi biti sovražnik. Za začetek napada z injekcijo SQL je očitno potrebno znanje SQL, vendar se na splošno ne šteje za zelo težaven jezik za učenje v primerjavi z drugimi programskimi jeziki in veliko je mogoče doseči le z osnovnim, a trdnim razumevanjem uporabe to. To pomeni, da obstaja veliko ljudi, ki brskajo po internetu in imajo potrebno znanje, da poskusijo vbrizgati SQL na spletno mesto.

Spletni razvijalci, zlasti tisti, ki so specializirani za zaledni spletni razvoj, so odgovorni za zagotovitev, da so spletna mesta, ki jih programirajo, varna pred vbrizgavanjem SQL. Skoraj vedno obstaja več načinov za doseganje tako pomembne varnosti in večina teh metod velja za preproste, a zelo učinkovite rešitve. Na primer, razvijalec lahko uporabi funkcijo mysql_real_escape_string() ali pripravljene stavke, ko skriptira v jeziku predprocesorja hiperbesedila (PHP). Metode, izbrane za zaščito pred napadi, je treba skrbno pretehtati, saj učinkovitosti spletnega mesta kot celote ni mogoče zanemariti niti pri nastavitvi varnosti.