sunnuntai 22. huhtikuuta 2007

Opetus 8: Syötteiden validointi

Vaikka sinä teetkin palvelua hyvällä tahdolla ja suurin osa internetiä käyttävistä ihmisistä on liikkeellä vilpittömin aikein, on olemassa pienen pieni vähemmistö jonka tarkoituksena on kartuttaa omaa mainettaan vahingoittamalla sinua. Jotkut moiset tahot (hakkerit ja krakkerit) selittävät tekojensa oikeutusta sillä, että he pyrkivät esimerkiksi tuomaan esini tietoturvan tärkeyttä konkreettisin keinoin. Henkilökohtainen mielipiteeni on, että tämän kaltaiset yritykset oikeuttaa vahingontekoa ovat silkkaa hevonpaskaa. Mutta koska moisia tahoja on olemassa, pitää sinun palvelua kehittäessäsi ottaa tämäkin huomioon.

www.mutteri.com:in tapauksessa olen törmännyt kahdenlaiseen vahingontekoon / -yritykseen.


  1. Robotit, jotka seikkailevat pitkin Internetiä hakukoneiden tapaan etsien heikkoja sivustoja. Nämä harvemmin ovat kovin älykkäitä (tai ne mihin minä olen törmännyt ovat olleet verrattain yksinkertaisia). Näiden tarkoituksena on lähinnä syöttää järjestelmääsi tarpeetonta sontaa. Mutteri.com tapauksessa alkoi yhdessä vaiheessa järjestelmään tulla robotti käyttäjiä (rekisteröinnin kautta) ja turhia ilmoituksia (jotka ei vaadi rekisteröintiä).

  2. Pahantahtoiset käyttäjät, jotka etsivät (käsin tai koneellisesti) heikkouksia ohjelmastasi tavoitteena esimerkiksi kaataa koko palvelu, tai esimerkiksi korvata etusivu jollain julistuksella.


Tuntemattomalle palvelulle, näiden aiheuttama haitta on pientä. Kun ei ole mainetta mitä menettää, ei sen suhteen tarvitse olla huolissaan. Mutta tämäntyyliset ongelmat helposti pitävät myös vilpittömät käyttäjät kaukana.

Syötteiden tarkistaminen on tärkeää virheiden karsimiseksi, ja pahantahtoisten vierailijoiden eliminoimiseksi.


Näitä kahta vastaan olen pyrkinyt taistelemaan kahdella helpohkolla aseella.

  1. Kuvatunnisteet. Rekisteröitymisen yhteydessä käyttäjät joutuvat osoittamaan sen, että he ovat ihmisiä eikä koneita siten, että rekisteröitymissivulla on kuva mihin on kirjoitettu merkkijono. Rekisteröitymisen yhteydessä käyttäjän tulee syöttää tuo merkkijono henkilötietojen lisäksi. Suosittelen tämäntyylistä lisävarmistusta sivuille jossa voidaan syöttää tietoa järjestelmään ilman, että syöttäjä tunnistautuu (esim kirjautuu sisään).

  2. Syötteiden validointi. Kaikki kentät mitä käyttäjät täyttävät lähettäessään tietoa järjestelmään käydään läpi tietyin säännöin (erityyliset kentät validoidaan eri säännöillä). Tällä pyritään varmistamaan, että järjestelmää ei esimerkiksi kaadeta tahallisesti.


Näiden validointien jälkeen on järjestelmä pysynyt turvassa robottien suhteen. Myöskään hakkerit eivät ole (vielä) vaivanneet.

En yritäkään väittää, että www.mutteri.com olisi hakkerivarma - en usko, että sellaista järjestelmää onkaan.


Mutta uskon, että varotoimenpiteet vähentävät ongelmia ja käsipelillä tehtävää siivousta. Huomaa, että roboteille on täysin yhdentekevää kuinka tunnettu tai tuntematon palvelusi on - niille kaikki on vapaata riistaa. Siksi syötteiden validointi on syytä hoitaa kuntoon jo alkutaipaleella.

Ei kommentteja: