Kontaktivorm ilma reCAPTCHA-ta — rämpspostikaitse ilma Google'i skriptideta
🎧 Kuula kõiki artikleid järjest
Kontaktivormi saab kaitsta rämpsposti eest ka ilma reCAPTCHA-ta ja Google'i skriptideta. Honeypot, ajastuse kontroll, IP-piirangud ja sisufilter püüavad kinni suure osa botiliiklusest ilma kolmanda osapoole jälgimisskripti lisamata.
reCAPTCHA on saanud vaikimisi lahenduseks paljudel veebilehtedel. See toimib hästi, kuid sellega kaasnevad privaatsus-, jõudlus- ja nõusolekuküsimused, mida kõik organisatsioonid ei soovi või ei saa aktsepteerida.
Praktikas on võimalik peatada suur osa rämpspostist ka ilma Google'i teenuseid kasutamata. Selleks tuleb vaadata, kuidas botid tegelikult käituvad, ning rakendada mitu üksteist täiendavat kaitsekihti. Sama põhimõte sobib nii lihtsale PHP-vormile kui ka Drupali saidile, kus privaatsus, jõudlus ja vormide töökindlus on osa tehnilisest hooldusest.
Miks reCAPTCHA-st loobuda?
reCAPTCHA v3 kasutab Google'i riskihindamise süsteemi, mis tugineb suurele hulgale kasutajasignaalidele. Lahendus on tõhus, kuid toob kaasa välise sõltuvuse ja täiendava andmetöötluse.
Privaatsus
reCAPTCHA laadib brauserisse Google'i skripte ning kogub signaale kasutaja tegevuse kohta.
See tähendab, et:
- kasutaja brauser suhtleb Google'i serveritega;
- Google saab infot külastuse kohta;
- veebileht muutub osaliselt sõltuvaks kolmanda osapoole teenusest.
Organisatsioonidele, kes soovivad minimeerida andmejagamist väliste teenusepakkujatega, võib see olla oluline puudus.
GDPR ja nõusolek
Kuna tegemist on kolmanda osapoole teenusega, mis töötleb kasutajaandmeid, tuleb paljudel juhtudel hinnata, kas kasutajalt on vaja nõusolekut.
Praktikas kasutatakse reCAPTCHA-t sageli ilma selge nõusolekuta, kuid see ei pruugi olla kooskõlas organisatsiooni privaatsusnõuetega.
Jõudlus
Iga väline skript tähendab täiendavaid päringuid.
Kuigi reCAPTCHA mõju ei ole tavaliselt suur, lisab see siiski:
- täiendava JavaScripti;
- võrguühenduse välise teenusega;
- sõltuvuse Google'i infrastruktuurist.
Mitmekihiline kaitse ilma reCAPTCHA-ta
Kõige tõhusam alternatiiv ei ole üksainus filter, vaid mitu üksteist täiendavat kontrolli.
Iga kiht püüab kinni erinevat tüüpi soovimatu liikluse.
Kiht 1: Honeypot
Honeypot on peidetud vormiväli, mida tavakasutaja ei näe.
Paljud botid täidavad automaatselt kõik vormiväljad, mida nad leiavad. Kui peidetud väli sisaldab väärtust, on väga suur tõenäosus, et saatja ei ole inimene.
Oluline detail on see, et server ei tohiks sellisel juhul tagastada veateadet.
Parem on vastata näilise eduga:
- bot arvab, et vorm saadeti edukalt;
- ründaja ei saa vihjet, milline kontroll ta reetis;
- sama bot jätkab vigase käitumisega.
Kiht 2: Ajastuse kontroll
Inimesed ei täida vorme hetkega.
Tüüpiline kasutaja:
- avab lehe;
- loeb sisu;
- kirjutab sõnumi;
- saadab vormi.
Bot võib sama teha mõne millisekundiga.
Seetõttu saab vormi avamisel salvestada ajatempli ning kontrollida saatmisel, kui palju aega möödus.
Näiteks:
- alla 3 sekundi → tõenäoliselt bot;
- üle 2 tunni → võimalik aegunud või korduskasutatud vorm.
Mõlemal juhul võib server vastata vaikselt eduteatega ilma tegelikku sõnumit töötlemata.
Kiht 3: IP-põhine piiramine
Kui üks saatja üritab vormi kasutada kümneid või sadu kordi järjest, ei ole tegemist tavapärase kasutusega.
IP-põhine piirang võib näiteks lubada:
- kuni 5 sõnumit tunnis;
- kuni 20 sõnumit päevas.
Selline piirang peatab suure osa automatiseeritud rünnakutest ilma tavakasutajaid mõjutamata.
Erinevalt honeypot'ist võib siin kasutajale kuvada selge veateate, sest legitiimsel kasutajal on kasulik teada, miks saatmine ebaõnnestus.
Kiht 4: E-posti aadressi kontroll
Paljud rämpsposti saatjad kasutavad ühekordseid või olematuid e-posti aadresse.
Kontrollida saab vähemalt kahte asja:
Ajutised e-posti teenused
Tuntud teenused nagu:
- Mailinator;
- Guerrilla Mail;
- YOPmail;
- Temp Mail;
saab blokeerida domeeninime alusel.
MX-kirjed
Kui aadressi domeenil puuduvad MX-kirjed või muu postiserveri konfiguratsioon, ei ole sellele aadressile võimalik tegelikult kirju saata.
Selline kontroll aitab eemaldada suure hulga võltsitud aadresse.
Kiht 5: Stop Forum Spam
Stop Forum Spam (avaneb uues aknas) on avalik andmebaas, kuhu kogutakse teadaolevate spämmerite IP-aadresse ja e-posti aadresse.
Saatmise ajal saab kontrollida:
- IP-aadressi;
- e-posti aadressi;
- mõnel juhul kasutajanime.
Praktiline soovitus on blokeerida ainult kõrge usaldusväärsusega tabamused.
Liiga agressiivne filtreerimine võib põhjustada valepositiivseid tulemusi.
Kui teenus ei vasta või API on ajutiselt maas, tasub vormi saatmine siiski lubada. Usaldusväärsus on olulisem kui üksik blokeeritud rämpspost.
Kiht 6: Sisu filtreerimine
Paljud automatiseeritud sõnumid sisaldavad sarnaseid mustreid:
- kasiinod;
- krüptovaluutad;
- SEO pakkumised;
- laenud;
- kahtlased lingid.
Selle asemel, et keelata üksikuid sõnu, tasub kasutada punktisüsteemi.
Näiteks:
- üks kahtlane märksõna → madal risk;
- mitu märksõna ja välislink → kõrge risk.
Selline lähenemine vähendab valepositiivseid tulemusi ning võimaldab filtreid aja jooksul täiustada.
Alternatiivid
Kui täielikult kohalik lahendus ei sobi, on olemas ka teisi võimalusi.
Cloudflare Turnstile
Cloudflare Turnstile on üks populaarsemaid reCAPTCHA alternatiive.
Omadused:
- tasuta;
- ei vaja enamasti eraldi kasutaja tegevust ja häirib kasutajat vähem kui traditsiooniline CAPTCHA.
Puuduseks jääb sõltuvus kolmanda osapoole teenusest.
hCaptcha
hCaptcha keskendub rohkem privaatsusele kui reCAPTCHA.
See sobib hästi organisatsioonidele, kes soovivad vähendada Google'i teenuste kasutamist, kuid on valmis kasutama välist CAPTCHA lahendust.
Akismet
Akismet on levinud rämpspostifilter, eriti WordPressi keskkonnas.
See sobib hästi kommentaaride ja kontaktivormide filtreerimiseks, kuid eeldab välise teenuse kasutamist.
Cloudflare WAF
Kui rämpsposti või pahatahtlikku liiklust on väga palju, ei pruugi vormitaseme kaitse enam piisata.
Sellisel juhul tasub liiklus filtreerida juba võrgu servas Cloudflare WAF-i või sarnase veebirakenduste tulemüüri abil.
Mida kohalik lahendus ei lahenda?
Ükski lahendus ei peata kõiki võimalikke rünnakuid.
Näiteks:
Hajutatud rünnakud
Kui tuhanded erinevad IP-aadressid saadavad igaüks ühe päringu, ei aita IP-põhine piiramine kuigi palju.
Selliste olukordade jaoks on mõeldud WAF-id ja liikluse filtreerimine võrgu tasemel.
Spetsiaalselt kohandatud botid
Kui keegi sihib konkreetselt sinu veebilehte ning kohandab oma boti selle vormi järgi, võivad mõned kontrollid jääda ebapiisavaks.
Sellisel juhul on sageli mõistlik lisada:
- käsitsi ülevaatus;
- täiendavad riskiskoorid;
- võrgu taseme kaitse.
Kokkuvõte
Kontaktivormi kaitsmine ei eelda tingimata reCAPTCHA kasutamist.
Paljude veebilehtede jaoks piisab mitmest lihtsast kontrollist:
- honeypot;
- ajastuse kontroll;
- e-posti valideerimine;
- IP-põhine piiramine;
- Stop Forum Spam;
- sisufilter.
Selline lähenemine võimaldab hoida vormi kasutajasõbraliku, vähendada sõltuvust kolmandatest osapooltest ning vähendada privaatsus- ja nõusolekuriske.
Tulemuseks on kontaktivorm, mis blokeerib suure osa automatiseeritud rämpspostist ilma Google'i skriptide, CAPTCHA väljakutsete või keerulise kasutajakogemuseta.

Vajad Drupal abi?
Kui artikkel puudutab sinu olukorda, ei pea kõike lõpuni lugema. Sinuga suhtleb päris inimene ja aitab järgmise sammuni jõuda.