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:

  1. avab lehe;
  2. loeb sisu;
  3. kirjutab sõnumi;
  4. 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:

  1. honeypot;
  2. ajastuse kontroll;
  3. e-posti valideerimine;
  4. IP-põhine piiramine;
  5. Stop Forum Spam;
  6. 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.

Kaido Toomingas, WebPro tehniline juhtWebPro Company OÜ Tehniline juht: Kaido Toomingas

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.