Verkkomaksut

Ohjeet turvallisen verkkomaksutoteutuksen tekemiseen

1. Varmista pankin paluutietojen oikeellisuus
Varmista, että kaikissa "OK"-paluuosoitteissa tulevat paluutiedot tarkistetaan oikein käyttäen mukana tulevaa tarkistetta ja kaikkia tarvittavia tietokenttiä.

Huomioitavaa: Esimerkiksi Nordea-pankissa paluutiedot lasketaan myös CANCEL ja REJECT url:issa ilman RETURN_PAID-kenttää, eli pelkkä oikean tarkisteen olemassaolo ei riitä osoittamaan maksun onnistumista. Onnistuneessa maksussa tulee olla RETURN_PAID kenttä mukana. Jos sitä ei ole, ei maksu ole onnistunut. Eri pankkien määritelmät poikkeavat toisistaan, mikä tulee ottaa huomioon toteutuksessa.

2. Varmista maksutapahtumien kertakäyttöisyys
Varmista, että maksun viitenumero/arkistointitunnus säilytetään. Maksutapahtumia hyväksyttäessä tulee tarkastaa, ettei vastaanotettua viitenumeroa/arkistointitunnusta ole käytetty aikaisemmin.

Toistohyökkäys voi olla mahdollinen, jos verkkomaksujen viitenumeroista tai arkistointitunnuksista ei pidetä kirjaa eikä tarkasteta.

3. Varmista maksun onnistuminen pankista transaktion jälkeen
Suurien ostosten yhteydessä on suositeltavaa aina tarkastaa tililtä, että maksu on todellisuudessa saapunut perille, ennen kuin tuote lähetetään asiakkaalle.

Mikäli tarkisteavaimet ovat päätyneet vääriin käsiin, on hyökkääjällä mahdollisuus luoda väärennettyjä maksuja. On suositeltavaa tehdä maksukysely jokaisen onnistuneen paluuviestin jälkeen, eikä luottaa pelkkään paluuviestiin.

4. Säilytä tarkisteavaimet turvallisesti
Tarkisteavaimet tulee siirtää suojattuun sijaintiin. Suositeltavaa on tehdä tarkisteavaimien käsittely täysin eriytetyssä ympäristössä erillään varsinaiselta verkkokauppapalvelimelta. Tämä rajoittaa pääsyä tarkisteavaimiin sekä oman henkilöstön, että mahdollisen hyökkääjän taholta.

5. Määritä prosessi tarkisteavaimien vaihtamiselle
Suunnittele prosessi, kuinka käytännössä vaihdetaan tarkisteavaimet niiden joutuessa vääriin käsiin tai avainhenkilöstön vaihtuessa.

6. Määritä paluuosoitteet käyttäen ainoastaan salattua yhteyttä (https)
Varmista lähdekoodista, että kaikki paluuosoitteet alkavat https-alkuisella osoitteella, jolloin pankin tekemä uudelleenohjaus toimii ei välity salaamattomana. Jos verkkokauppatoteutus tekee itse uudelleenohjauksen salattuun osoitteeseen vasta verkkokaupan päässä, tieto kulkee verkossa ensin salaamattomana.