SQL-Injektio-hyökkäyksen torjunta ohjelmallisesti (Python)

Vuoden 2017 OWASP-listan turvallisuusuhkien TOP 10 –listassa ykkösenä on edelleen Injektio (Injection), joka voidaan kohdistaa esimerkiksi SQL-tietokantaan tai JavaScript-koodia käyttäen HTML-lomakkeiden syötteen kautta. Kehittelin Python –skriptin, jonka avulla voi torjua ohjelmallisesti SQL-injektio-hyökkäyksen ilman tarvetta luoda valkoista, tai –mustaa listaa (Whitelist, Blacklist) syötteistä, se kun lienee jopa mahdotonta rajata kaikkia vaihtoehtoja pois ainakaan mahdotonta on luoda musta lista, joten valkoinen lista toimii useimmiten paremmin. Google varmaan hakulomakkeen syötteen prosessoinnissa käyttää molempia.

Pistin koodin Python-kansioon Github-profiiliini. Homman idea on se, että skriptissä prosessoidaan HTML-lomakkeen syöte siten, että ensin kaikista syötteen välilyönnillä erotetuista merkkijonoista luodaan taulukko, jonka jälkeen ne yhdistetään String-metodilla ””.join(formInput) –metodilla yhdeksi merkkijonokoksi lisäten väliin merkkijonon “”, eli tyhjän ja vieläpä siten, että kaikki merkit voidaan vielä muuttaa pieniksi kirjaimiksi, niin ei ainakaan JavaScript –koodillakaan pääse kokeneempi red-hat –hakkeri tai joku skriptikakara (Script Kid) murtautumaan järjestelmään. Niin kuin entinen ala-aste –luokkani luokanvalvoja koulun rehtori Unto Nieminen totesi, että ”Kaikki menee samaan ”hevoshalpasuomilenkki-makkaraksi” puhuessaan suomen kielen lauseopista. Tässä välissä paljastan, että itsekin aloitin 14-vuotiaana Pimeässä Internetissä nimenomaan Skriptikakarana vuonna 1997-1998 tienoilla.

Artikkelin linkit:

OWASP-Top 10 -lista (2017)

Python-skriptini “inputProcess.py” Github-Profiilissani

About Jere Sumell

Graduated in February 2017 at the degree program of Bachleor of Business and Administration in Information Technology at Turku Univerity of Applied Sciences. At the end of the last semester I started to be a sole trader for my private projects and I'm officially taking public action in Politics through the Left Alliance in Finland. I'm the member of the Left Alliance Educational Division. I did the takedown my current business activities at the 31.5.2018 (Mostly responsive web developement orders based on CMS-solutions was the works some enterpeurers ordered from me.) I'm article writer in my Computer -related blog @ Wordpress. My first appearance at Wordpress blogs was our IT-student team blog called "The Gr8 Tigers".
This entry was posted in Blogi, Internet, IoT, Koulutus, Linkkivinkki, nettivinkki, Ohjelmointi, Talous, Tietokannat, Turvallisuus, Versionhallinta, Yritys. Bookmark the permalink.

4 Responses to SQL-Injektio-hyökkäyksen torjunta ohjelmallisesti (Python)

  1. Matti says:

    Minkälaisia hyökkäyksiä tämä estää? Eikös syötteessä kuulu yleensä ollakin välilyöntejä, kuten esim tässä kommentissa? Eikös tämä tekis vähän saman: forminput.replace(‘ ‘, ”).lower() ?

    • Jere Sumell says:

      SQL Injektiohyökkäyksessä pahaa tarkoittavan hyökkääjän tavoite on kohdistaa haittakoodia SQL-tietokantaan, ja jos esimerkiksi tietokannassa on käyttäjätietoja, varastaa ne mitä oletettavammin. Ainakaan tuohon Palindromikoneeseeni ei pysty kohdistamaan SQL-haittakoodia, vaikka joku saisikin cracakttua tietokannan salasanan.

      • Matti says:

        Ok, tämä selvä. Palindromikoneessa varmaan toimii. Käyttäisitkö tätä muidenkin inputtien muuttamiseen?

      • Jere Sumell says:

        No lopullisessa tulosteessa ei olisi kait pakko muuttaa, vain siinä vaiheessa, kun käyttäjä lähettää lomakkeen tiedot verkon yli? No miksen käyttäisi, toimiihan se.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s