Sivustojen testaamiseksi on useita erilaisia kaupallisia ja ilmaisia työkaluja.
Testaamista tekevät myös kaupalliset yritykset. Harrastajakäyttöön tehdyn
sivuston testaaminen kaupallisen toimijan avulla voi kuitenkin osoittautua liian
kalliiksi.
OWASP (Open Web Application Security Project) on julkaissut useita ohjeita
sivuston testaamiseksi SQL-injektioiden ja muiden yleisimpien
turvallisuusongelmien varalta sekä
kymmenen yleisimmän verkkosovelluksissa esiintyvän riskin luetteloa (niin
sanottu OWASP Top Ten). Ohjeisiin tulisi suhtautua enemmänkin vaatimuksina, kuin
viitteellisinä ohjeina.
Ohjelmiston testaamiseen käyttöönottovaiheessa kannattaa panostaa, koska
myöhemmin siihen ei välttämättä ole mahdollisuutta. Käyttöönottovaiheessa
resursseja testaamiseen yleensä löytyy, eikä testauskäytössä olevan sivuston
alhaallaolo välttämättä aiheuta taloudellista menetystä, toisin kuin esimerkiksi
tuotannossa olevan verkkokaupan testaus ja alasajo määrittelemättömäksi ajaksi.
Tutustu myös
vaatimuksiin, joita henkilörekisterin ylläpitäjälle on asetettu.
OWASP:n mini-tarkistuslista sovelluskehittäjälle
- Tarkista, että kaikki käyttäjältä tulevat syötteet sisältävät ainoastaan
sallittuja merkkejä, mukaan lukien lomakkeet, http-otsikot, evästeet ja
url-parametrit (A1,
A2)
- Muuta erikoismerkit turvalliseen muotoon, kun tietoa liitetään
verkkosivuun tai taustajärjestelmäkyselyyn (A1,
A2)
- Rajoita samalle tunnukselle tehtävien peräkkäisten epäonnistuneiden
kirjautumisten määrää, esimerkiksi CAPTCHA-tunnisteella tai kasvavalla
viipeellä (A3)
- Varmista, että istuntotunniste on satunnainen ja riittävän pitkä
(suositus 256-bittiä) ja että se vaihtuu jokaisen kirjautumisen yhteydessä
ja vanhenee uloskirjauduttaessa (A3)
- Estä heikkojen salasanojen käyttö (A3)
- Tarkista käyttäjän oikeus suorittaa pyyntö jokaisen sivulatauksen tai
toiminnon yhteydessä ja vältä globaaleiden id-tunnusten käyttöä (A4,
A3, A8)
- Lisää kaikkiin pyyntöihin istuntokohtainen satunnainen tunniste
varmistaaksesi, ettei pyyntö ole peräisin vihamieliseltä sivustolta (A5)
- Ohjeista selaimen tietovuotoja estävien toimintojen käyttö
(cache-control, secure- ja httponly-liput evästeissä, autocomplete="off"
lomakkeissa) (A6)
- Varmista, että web-palvelimessa ja käytettävissä ohjelmistoissa sekä
kirjastoissa on uusimmat päivitykset ja että ainoastaan web-palvelin näkyy
ulkoverkkoon (A6)
- Näytä virhetilanteissa ainoastaan geneerinen virheilmoitus ja estä
yksityiskohtaisten virhetietojen näkyminen (A6)
- Suojaa salasanat yksisuuntaisella tiivistefunktiolla ja
salasanakohtaisella suola-arvolla (A7)
- Käytä turvallista https-yhteyttä kaikkiin kirjautumista vaativiin
yhteyksiin ja salli vain HIGH-tason SSLv3/TLS-salaukset (A9)
- Varmista, että mahdolliset uudelleenohjaukset tapahtuvat ainoastaan
sallittuihin osoitteisiin (A10)