Što je SQL injekcija?

Injekcija jezika strukturiranih upita (SQL) vrsta je napada koji se gotovo uvijek pokušava na web stranicu koja je vođena bazom podataka. To je pokušaj umetanja zlonamjernog koda u SQL upite stranice kako bi se ometalo upravljanje podacima uništavanjem, mijenjanjem ili otkrivanjem podataka koji su pohranjeni u tablicama baze podataka koja pokreće stranicu. SQL je standardni programski jezik koji se koristi za stvaranje, ažuriranje i dohvaćanje podataka koji su pohranjeni u bazama podataka.

Opasnosti od napada SQL injekcijom su brojne i često vrlo razorne kada se uspješno izvedu. Osjetljive informacije kao što su brojevi kreditnih kartica, medicinska dokumentacija, korisnička imena i lozinke za račune kao što su internetsko bankarstvo i e-pošta, kao i razne vrste identifikacijskih brojeva mogu biti izložene kibernetičkim kriminalcima. Iako je krađa podataka vjerojatno glavni cilj svakoga tko pokuša koristiti SQL injekciju, to nije jedina motivacija za korištenje ove ili bilo koje druge vrste tehnike ubrizgavanja koda, kao što je skriptiranje na više mjesta. Posjetitelji web-mjesta koji prikazuju informacije koje im se ne sviđaju mogu pokušati s napadima SQL injekcije kako bi onemogućili web-mjesto, ukrali podatke ili izmijenili podatke kako bi uništili misiju ljudi koji stoje iza stranice.

Ponekad nezadovoljni posjetitelj kojemu su vlasnici web-mjesta možda zabranili njegov ili njezin račun, koji zavidi na popularnosti web-mjesta ili koji nastoji uništiti online poslovanje nekoga za koga smatra da će pokušati izvršiti napad SQL injekcijom na web stranicu. biti neprijatelj. Poznavanje SQL-a očito je potrebno za pokretanje napada SQL injekcijom, ali se općenito ne smatra jezikom koji je vrlo težak za učenje u usporedbi s drugim programskim jezicima, a mnogo se može postići samo s osnovnim, ali čvrstim razumijevanjem načina korištenja to. To znači da postoji dobar broj ljudi koji surfaju internetom koji imaju potrebnu vještinu da pokušaju SQL injekciju na web stranicu.

Web programeri, posebno oni koji su specijalizirani za back-end web razvoj, odgovorni su za osiguranje da su web-mjesta koja programiraju sigurna od SQL injekcije. Gotovo uvijek postoji više od jednog načina za postizanje tako važne sigurnosti, a većina tih metoda smatra se jednostavnim, ali vrlo učinkovitim rješenjima. Na primjer, programer može koristiti funkciju mysql_real_escape_string() ili pripremljene naredbe kada skriptira u jeziku pretprocesora hiperteksta (PHP). Odabrane metode zaštite od napada moraju se pažljivo razmotriti, jer se performanse stranice kao cjeline ne mogu zanemariti čak ni pri postavljanju sigurnosti.