Web-lomakkeiden asiakaspuolen validoinnista, osa 1: Mitä se on?

Lomakkeet ovat monille webin mörköjä, joiden pelkkä näkeminen aiheuttaa nopean klikkauksen toiselle sivulle. Kun pitkän lomakkeen vaivalloisen ja huolellisen täyttämisen jälkeen vihdoin pääsee lähettämään, tärähtää muutaman sekunnin odotuksen jälkeen ruudulle sama lomake ja kasa virheilmoituksia puuttuvista tai väärin täytetyistä kentistä. Viimeistään tässä kohtaa kärähtää käpy viimeisiltäkin sisseiltä.

Lomake - webin mörkö?Käyttökokemusta parantamaan käytetään mm. asiakaspuolen validointia, joka tarkoittaa käyttäjän selaimessa tapahtuvaa, useimmiten reaaliaikaista, syötetyn tiedon tarkastelua. Useimmiten siis käyttäjän syötettyä kenttään tietoa, tarkistetaan syöte ja kerrotaan käyttäjälle miten kävi. Palaute voidaan antaa tekstinä tai grafiikkana, muodossa josta käyttäjän on se helppo ymmärtää.

Validoinnilla huolehditaan myös talletettavan tiedon eheydestä. Onnistunut validointi takaa syötteen vastaavan haluttua tietoa ainakin pintapuolisesti. Vaikkei tiedon paikkaansapitävyydestä voidakaan olla varmoja, tiedetään sen ainakin muodoltaan olevan oikein ja ylipäätään syötetty.

Validoinnin monet muodot

Yksinkertaisinpia tarkistuksia on esimerkiksi kahdesti syötettyjen salasanojen ja sähköpostiosotteiden keskinäinen vertaaminen. Osittain validoinnin kategoriaan osuvat myös salasanojen vahvuuksia osoittavat mittarit.

Yleisin validoinnin muoto on kuitenkin syötteen olemassaolon tarkistus. Osa lomakkeiden kentistä halutaan yleensä määrittää pakollisiksi, jolloin halutaan varmistaa, että kaikki nämä kentät todellakin on täytetty. Pakollisia kenttiä validoitaessa ei puututa syötteen sisältöön, vaan ainoastaan tarkistetaan onko syötettä annettu.

Astetta kehittyneempää on syötetyn sisällön tarkastelu, eli vastaako syöte haluttua formaattia. Esimerkiksi syötetystä sähköpostiosoitteesta halutaan yleensä löytää ainakin @-merkki. Erinomainen vaihtoehto, jos syötteen muoto on selkeä, siinä voi olla vain tiettyjä merkkejä tai osa merkeistä on kiellettyjä. Validointiin käytetään säännöllisiä lausekkeita (ns. regex-lausekkeita, engl. regular expressions), joilla monimutkainenkin syöttömuoto voidaan määritellä formaalisti.

Lisäksi AJAX-kyselynä voidaan yksittäinen syöte käyttää nopeasti palvelimella, esimerkiksi tarkistaa, onko käyttäjän valitsema käyttäjänimi saatavilla.

Muista nämä!

Reaaliaikainen validointi antaa käyttäjälle pieniä palkintoja jatkuvalla syötöllä, eikä pidempikään lomake tunnu ollenkaan niin ikävältä. Palvelinkin säästyy turhilta pyynnöiltä, kun sisään tuleva data on jo kertaalleen tarkastettu, eikä erillistä pallottelua käyttäjän kanssa tarvitse tehdä.

Tietoturvan kannalta on kuitenkin äärimmäisen tärkeää muistaa, että kaikki käyttäjältä tuleva syöte on validoitava myös palvelinpuolella. Asiakaspuolen validoinnin tekniikat riippuvat täysin käyttäjän ympäristöstä ja asetuksista, joten niiden toiminnasta ei voida varmistua. Lisäksi tarkoituksellisessa hyökkäyksessä kaikki palvelimelle tuleva tieto voi olla väärennettyä ja lähetetty ohi oletetun lähetysmekanismin.

Seuraavassa osassa kerrotaan, miten asiakaspuolen validointi teknisesti voidaan toteuttaa.

Kirjoittaja opiskelee ohjelmistotekniikan DI:ksi ja kirjoitti kanditutkielmansa aiheesta “Web-lomakkeiden asiakaspuolen validointi”. Kirjoittaja myös työskentelee Aucorin alihankkijana ja tuo ovelasti uusia oppeja käytännön toteutuksiin.

Tykkäsitkö kirjoituksesta? Tilaa uutiskirjeemme:

Käyttäjän Janne Ala-Äijälä kuva

Janne on Aucorin tuorein vahvistus. Jannen vastuulla ovat Drupal-kehityksen lisäksi sivupohjien ja JavaScript-toiminnallisuuksien suunnittelu ja toteutus. Tutustu Janneen!

Kommentit

[...] kirjoitus on jatkoa kirjoitukselle, jossa kerrotaan mitä asiakaspuolen validointi [...]

Lisää uusi kommentti