Avaan kybersanasto-julkaisusarjassa erilaisia tietoturvaan liittyviä termejä.
Mikä on SQLi?
SQL eli Structured Query Language on ohjelmistokieli, jota käytetään esimerkiksi tietokantojen ylläpidossa.
Otetaan esimerkiksi vaikka verkkokauppa. Kauppaan on listattu kaikki myytävät tuotteet ja asiakkaat, jotka ovat luoneet tilin verkkokauppaan. Tätä tietokantaa voitaisiin ohjata SQL-komentoja käyttäen.
SQLi eli SQL-injektio on haavoittuvuus, jossa hakkeri pääsee ajamaan näitä SQL-komentoja ja esimerkiksi tekemään muutoksia tai saamaan tietoa ulos näistä tietokannoista.
Päästäkseen ajamaan näitä komentoja, tarvitaan palvelussa oleva toiminnallisuus, johon voidaan syöttää tekstiä. Eli esimerkiksi sisäänkirjautumisruutu tai hakukenttä.
SQL-injektiolta voi suojautua monin eri keinoin, esimerkiksi:
🌸 Käyttämällä valmiita SQL-kirjastoja sen sijaan että koodaa kaiken alusta alkaen itse, esimerkiksi ORM-kirjasto.
🌸 Käyttämällä vain parameterisoituja kyselyitä (prepared statements) SQL-komennoissa.
🌸 Tutustumalla SQL-injektioihin ja ymmärtämällä mistä ne johtuvat.
🌸 Validoimalla ja sanitoimalla palvelimen päässä kaiken tekstin, mitä käyttäjä voi sivulle syöttää. Validointi varmistaa, että syötetty teksti vastaa järjestelmän odotuksia (esimerkiksi hakukenttään tuskin tarvitsee syöttää erikoismerkkejä, kuten ') ja sanitointi poistaa tai muuttaa mahdollisesti haitallisen sisällön (eli esimerkiksi hakua tehdessä poistetaan syötetty '-merkki).
Esimerkiksi Portswigger Academyssä englanniksi tai Hakatemiassa suomeksi on selitetty, kuinka SQL-injektioita voidaan tunnistaa ja korjata.
Yhteenveto
Työskentelen tietoturva-asiantuntijana 2NS:llä. Ota mun minjahakkeroi-tilit seurantaan Instagramissa ja Threadsissä, jos haluat nähdä enemmän työstäni hyvishakkerina!
Top comments (0)