Liigu edasi põhisisu juurde
illustratsioon e-poest ja tema kasvudiagrammist

Milliste väljakutsetega seisab silmitsi Baltikumi suurim mängukoode müüv e-pood?

Andres Lüiste

Iga e-poe unistus on jõuda võimalikult paljude klientideni ning kasvada võimalikult suureks. Sellega kaasneb aga hulk erinevaid väljakutseid.

 

Punktid.com on 2009. aastal loodud ettevõte, kes müüb erinevaid digitaalseid tooteid mängudest viirusetõrjeteni välja. Lehel on igakuiselt 100 000 – 200 000 kasutajat ja see on tõlgitud seitsmesse erinevasse keelde.

 

Tooted, mida lehel müüakse, saab klient kätte kohe peale ostu edukat sooritamist, kuid ostuprotsess ise sisaldab endas palju erinevaid riske ja väljakutseid, mida saame tinglikult jaotada kolme suuremasse kategooriasse:

 

  1. väljakutsed petturitega
  2. süsteemi monitoorimine
  3. lehe turvalisus

 

Järgnevalt võtamegi need kolm põhjalikumalt ette ning anname soovitusi, mida teha, et süsteem igapäevaselt ilma suuremate probleemideta toimiks.

 

 

1. Väljakutsed petturitega

Kuna Punktide veebilehelt saab osta tooteid, mis on ühekordselt kasutatavad kohe peale ostu sooritamist, meelitab see ligi hulgaliselt inimesi, kes proovivad süsteemi üle kavaldada ning luua pahatahtlikul teel endale kasu. 

 

Petturid proovivad tüüpiliselt osta tooteid varastatud kontodega või siis osta tooteid hulgaliselt kokku ning hiljem väita, et keegi sai nende kontole sisse ja nad ise ei soovinudki tegelikult toodet osta. 

 

Pilt

 

Sellega võib kaasneda kohustus, et ettevõte peab kliendile raha tagasi maksma. Toodet aga uuesti müüki panna ei saa, kuna tooteks oli ühekordselt kasutatav kood, mis on selleks ajaks juba ära kasutatud. Lisaks on see tohutu ajakulu ja suur peavalu kõigile, kes peavad antud situatsiooniga tegelema.

 

Kuidas selliseid olukordi vältida?

Küsi klientidelt vajalikud andmed

Üks viise on kohustada klienti andma enda kohta vajalikke andmeid, et saaks verifitseerida õige ostja ning tuvastada, et kasutaja maksekonto ei ole varastatud

 

See toimib efektiivselt näiteks PayPali makselahenduse puhul. Esmalt tuleb makse sooritamiseks kasutajal luua endale konto, mis tagab selle, et teame tema õiget e-posti aadressi (kasutaja peab konto e-maili kaudu kinnitama ja ostu sooritamiseks sisse logima).

 

Lisaks, enne kui lubame kliendil maksma minna, peab ta kinnitama ka oma telefoninumbri. Kui meil on olemas kasutaja e-mail ja telefoninumber, saame peale makse sooritamist võrrelda, kas tema registreeritud konto kontaktandmed ühtivad PayPalis sisalduvate kontaktandmetega. Suureks ohumärgiks on see, kui need ei ühti ja siis on meil võimalus tellimus manuaalselt üle kontrollida. 

 

Veel üheks turvameetmeks on see, et saadame alati ostetud tooted e-mailile, millega registreeriti PayPali konto. See tagab toodete jõudmise reaalse ostja e-mailile isegi siis, kui ost sooritati varastatud maksekontoga.

 

Esineb veel kriteeriumeid, mille tõttu läheb tellimus manuaalsele ülevaatamisele:

  • üks ja sama inimene on teinud mitu tellimust järjest lühikese aja jooksul
  • tellimuses on suurel hulgal tooteid
  • tellimus on tehtud ebatavaliselt suure summa eest
  • antud e-mailiga on juba eelnevalt märgitud mõni kahtlane tellimus.

 

Need on mõned näited sellest, milliseid tehinguid süsteem eraldab. Tänu manuaalsele tellimuste ülevaatamisele saab samuti tühistatud üsna suurel hulgal petturite tellimusi.

 

Määra makselimiidid

Igale registreeritud ja ostu sooritanud kasutajale määratakse lehel isiklik ostu tase – pronks, hõbe või kuld. Iga kliendi tase sõltub sellest, kui suure summa eest ta viimase aasta jooksul ostnud on. 

 

Kasutaja boonuse tasemeid saab kasutada ka petturite tegevusest tulenevate riskide maandamiseks. Klient, kes on teinud eelnevalt mitmeid oste probleemideta, on märk sellest, et tõenäoliselt saavad tema tehtud ostud olema edukad ja probleemivabad ka tulevikus. 

 

Vastavalt sellele saame kasutajatele seada ka makselimiite. Näiteks „Kuld“ staatusega kasutaja saab osta nädalas 500€ eest tooteid, „Pronks“ tasemel kasutaja aga mõnesaja euro eest.

 

Pilt

 

Eemalda süsteemist turvaaugud

Süsteemi arendamisel on väga oluline, et alati oleks olemas keegi, kes vaatab üle teise programmeerija kirjutatud koodi (Code review). 

 

Näiteks ükskord tuvastasime inimese, kes oli leidnud mooduse, kuidas süsteem üle kavaldada ning saada tooted kätte nende eest tasumata. Kuna antud pettur ostis väga harva ja piisavalt väikeste summade eest, siis pettus ei tulnud ilmsiks pikka aega. Nii tegutsedes kogus ta omale mitmete aastate vältel tasuta tooteid koguni mitmete tuhandete eurode eest. 

 

Selline väärtoimetamine oli võimalik, kuna üks lehe arendajatest unustas koodist eemaldada rea, mis välistas pangamakse õigsuse kontrollimise. See tähendab, et kui inimene teab õiget URL’i, kuhu kasutaja peale edukat makselahendust suundub, siis on tal väga lihtne tasuta tooteid saada. Piisas vaid õigele lingile minna.

 

Sellest tulenevalt on äärmiselt oluline kasutada alati ka teist silmapaari, kes koodi üle kontrollib ja vähendab tõenäosust, et selline kood veebilehele üles saab.

 

Proovi mõelda läbi petturi silmade

Nagu eelnevalt mainisime, tuleb kasutajal PayPaliga maksmise korral kinnitada oma telefoninumber. Iseenesest tundub see lihtne: kasutaja sisestab telefoninumbri, talle saadetakse kood, seejärel sisestab ta saadetud koodi ja ongi tehtud. Sel viisil tõestab kasutaja, et see on tõesti tema telefoninumber. 

 

Esmapilgul tundub, et tegemist on üsna kaljukindla lahendusega, mida on raske kellelgi meie vastu pöörata. Küll aga suudeti siingi luua petuskeem ja tekitada rahalist kahju. Juba esimese päevaga korraldati üle 600€ suurune arve, kus üks telefoninumbri kinnitamine maksis vaid mõne sendi. See tähendab, et antud lahendust hakati „spämmima“ ning seeläbi punktid.com lehele arvet looma. 

 

Õnneks oli siinkohal lahendus lihtne. Lubasime iga sisse loginud kasutaja kohta ja igalt IP aadressilt maksimaalselt 10ne telefoninumbri kinnitamist. Kuna enam ei olnud võimalik piiramatult kinnitamisi teha, siis sellega kadus ka probleem.

 

Mida õppisime? Oluline on alati – isegi pealtnäha väga lollikindla süsteemi puhul - läbi mõelda kõik võimalikud tahud ja olukorrad, kuidas võib pahatahtlikul kasutajal olla võimalik süsteemi kuritarvitada.

 

 

2. Süsteemi monitoorimine

Selleks et olla kursis, mis süsteemis täpsemalt toimub, peab seda monitoorima. Põhiline, mida monitoorida: kas süsteem on piisavalt kiire, kas tellimuste tegemine toimib korrektselt ning kas süsteemi välised ühendused on töökorras.

 

Cloudflare monitooring

Esimeseks monitooringu vahendiks on Cloudflare. Cloudflare aitab esiteks muuta lehte kiiremaks, kuna suudab pakkuda klientidele eelnevalt salvestatud sisu (süsteem ei pea lehte iga külastaja jaoks nullist genereerima). 

 

Lisaks muudab see lehe turvalisemaks, kuna võimaldab tõrjuda küberrünnakuid (nt DDoS rünnak). Samuti võimaldab see monitoorida lehel toimivat liiklust. Monitooringu osas annab Cloudflare e-maili kaudu teada, kui lehele on sattunud ebatavaliselt kõrge liiklus. Kui selline teade tuleb, saab koheselt reageerida ja vaadata, kas tegu on rünnakuga ning kas kõik lehe kriitilised süsteemid toimivad korrektselt.

 

DigitalOcean monitooring

DigitalOcean on keskkond, kus on võimalik hallata oma servereid ja andmebaase. Lisaks pakub DigitalOcean häid monitoorimise võimalusi. Seal on võimalik monitoorida näiteks lehe protsessori koormust, andmemahtu, andmebaasi koormust, käimasolevaid andmebaasi päringuid ja palju muud. 

 

DigitalOcean võimaldab seada enda soovi järgi monitoorimise teavitusi. Näiteks, kui protsessori koormus on olnud üle 50% viimased 10 minutit, siis tuleb sellekohane teavitus. Antud keskkonna teavitused tulevad aga Slacki, mitte e-mailile. 

 

See on jällegi hea moodus teavituste saamiseks, sest Slackis on sul võimalus panna ühte kanalisse kokku kõik inimesed kes peavad teavitatud saama. Sellisel juhul on võimalus probleemiga tegeleval tiimil kohe operatiivselt suhelda. Samuti on kõik kursis, kas probleemiga tegeletakse ning mis seis parasjagu on.

 

Ise implementeeritud monitooringud

Cloudflare ja DigitalOcean aitavad monitoorida süsteemi üldist olekut, kuid samuti on tarvis teada mis toimub süsteemi sisemuses ja n-ö nurgatagustes. Süsteemi sisemise elu kohta info saamiseks on loodud eraldi monitoorimise süsteem. 

 

Lisaks on Punktid.com süsteemi ehitatud eraldi leht, kust saab vaadata, kas kõik vajalikud süsteemi osad on töökorras ega tööta liiga aeglaselt. 

 

Näiteks on võimalik jälgida, kas…

  • süsteemi andmebaasi päringud on piisavalt kiired
  • erinevad API ühendused toimivad
  • logide/andmebaaside ühendused toimivad.

 

Kui monitoorimise süsteem leiab, et mõni süsteemi osa ei vasta seatud kriteeriumitele või mõni väline liidestus ei toimi, tuleb selle kohta vajalikele osapooltele e-mail. 

 

Samuti on see hea viis veendumaks, et süsteemis on kõik korras ning kõige kriitilisemad süsteemi osad toimivad korrektselt. Tulevikus on lisandumas ka täiesti eraldi monitooringu server, kus saab hakata veel täpsemalt süsteemiga toimivat jälgima.

 

Pilt

 

 

3. Lehe turvalisus

Selleks, et toodete müümine saaks edukalt toimida ja nii tooted kui kasutajate info oleks kaitstud, on äärmiselt oluline, et leht oleks turvaline ning ligipääs infole on ainult ettenähtud isikutel.

 

Selle tõttu on Punktid.com lehel rakendatud järgmist:

  • IP piirangud administreerimiskeskkonda ja serveritesse
  • kahe-astmeline kinnitamine kõikidele lehega seotud kontodele + serveritele
  • kasutajatele rollid ja õigused lehe administreerimiskeskkonnas vastavalt vajadustele
  • pannakse suurt rõhku võimalikele turvauuendustele.

 

 

Kokkuvõtteks

Siin olid mõned viisid, mida Punktid.com rakendab oma saidil, et e-pood saaks jätkusuutlikult toimetada ja kasvada. Väga oluline on lehe toimimiskiiruse, turvalisuse ja süsteemide efektiivse toimimise tagamine.

 

Samuti on väga tähtis omada ülevaadet sellest, mis sinu süsteemis toimub, kuna siis ei pea pidevalt muretsema kõrvaliste isikute ligipääsu pärast sinu süsteemidele ja konfidentsiaalsele infole.