Structured Query Language (SQL) -injektio on hyökkäystyyppi, jota yritetään lähes aina tietokantapohjaista verkkosivustoa vastaan. Se on pyrkimys lisätä haitallista koodia sivuston SQL -kyselyihin häiritäkseen tiedonhallintaa tuhoamalla, muuttamalla tai paljastamalla sivustoa ohjaavan tietokannan taulukoihin tallennetut tiedot. SQL on vakio -ohjelmointikieli, jota käytetään luomaan, päivittämään ja hakemaan tietokantoihin tallennettuja tietoja.
SQL -injektiohyökkäysten vaarat ovat lukuisia ja usein erittäin tuhoisia, kun ne suoritetaan onnistuneesti. Arkaluonteiset tiedot, kuten luottokorttinumero, henkilön sairauskertomus, käyttäjätunnukset ja salasanat tileille, kuten verkkopankille ja sähköpostille, sekä erityyppiset tunnistenumerot voivat altistua tietoverkkorikollisille. Vaikka tietojen varastaminen on todennäköisesti kaikkien SQL-ruiskutusta yrittävien päätavoite, se ei ole ainoa motivaatio tämän tai minkä tahansa muun tyyppisen koodiruiskutustekniikan, kuten sivustojen välisen komentosarjan, käyttämiselle. Kävijät verkkosivustolla, joka näyttää tietoja, joista he eivät pidä, voivat yrittää SQL -injektiohyökkäyksiä poistaa sivuston käytöstä, varastaa tietoja tai muuttaa tietoja tuhotakseen sivuston takana olevien ihmisten tehtävän.
Joskus tyytymätön kävijä, joka on saattanut kieltää tilinsä sivuston omistajilta, yrittää joskus SQL -injektiohyökkäystä verkkosivustoa vastaan, joka kadehtii sivuston suosiota tai yrittää tuhota jonkun, jonka hän pitää olla vihollinen. SQL: n tuntemus on ilmeisesti välttämätöntä SQL -injektiohyökkäyksen käynnistämiseksi, mutta sitä ei yleensä pidetä kovin vaikeana kielenä oppia verrattuna muihin ohjelmointikieliin, ja paljon voidaan saavuttaa vain perustason, mutta vankan ymmärryksen avulla se. Tämä tarkoittaa, että Internetissä surffaa paljon ihmisiä, joilla on tarvittava taito yrittää SQL -injektiota verkkosivustoa vastaan.
Verkkokehittäjät, erityisesti ne, jotka ovat erikoistuneet taustatietojen kehittämiseen, ovat vastuussa siitä, että heidän ohjelmoimansa sivustot ovat suojattuja SQL-injektiolta. Lähes aina on useita tapoja saavuttaa tällainen tärkeä turvallisuus, ja useimpia näistä menetelmistä pidetään yksinkertaisina mutta erittäin tehokkaina ratkaisuina. Kehittäjä voi esimerkiksi käyttää mysql_real_escape_string () -funktiota tai valmiita lausekkeita, kun hän kirjoittaa komentosarjoja PHP (hypertext preprocessor) -kielellä. Hyökkäyksiltä suojautumismenetelmiä on harkittava huolellisesti, koska koko sivuston suorituskykyä ei voida sivuuttaa edes suojausta määritettäessä.