« Vissza a bejegyzésekhez

Űrlap védelme spam botok ellen

2019. április 09.

A spambotok elleni küzdelem évtizedek óta zajlik. Nem tudom mekkora üzlet lehet abban, hogy sokszor teljesen haszontalan és értelmetlen üzeneteket tolnak át a weboldalak kapcsolat űrlapjain, de megteszik. Ha még nyernének vele valamit... de inkább csak bosszantó a weboldal tulajdonosának. Szerencsére van néhány lehetőség, hogy ezellen védekezzünk, és nagyon egyszerű beépíteni őket, így ajánlom mindenkinek, akit gyógyszer meg viagra reklámokkal bombáznak a weboldala űrlapján keresztül.

Rejtett email mező beépítése

A módszer pár perc alatt megvalósítható, és rendkívül egyszerű a működése. Abból a tényből indul ki, hogy egy weboldalnál a CSS és a Javascript feldolgozása rengeteg erőforrást igényel, így a spambotok ezt nem fogják megtenni. Tehát a botok nem azt látják, amit a felhasználók, hiszen ők még a nyers HTML-lel foglalkoznak, azt elemzik, a felhasználó viszont egy más megformázott, kész weboldalt lát a böngészőjében. Gondolj bele - egy átlagos weboldal letöltése és megjelenítése körülbelül 3 másodperc. Ennek a sima HTML tartalma a másodperc töredéke alatt tölthető le. Innentől kezdve, hogyha több millió webcímet szeretne a bot végigellenőrizni űrlapküldési lehetőségek után, nyilvánvaló, hogy nem fér bele az, hogy alkalmanként három másodpercig dolgozgassa fel a megjelenítést, és így ténylegesen a végleges weboldalt látta, amit egy látogató is.

Ez nekünk nagyszerű, ugyanis ezt használjuk ki, amikor létrehozunk egy második email mezőt, mondjuk email2 ID-vel, és azt elrejtjük mind CSS-ből mind Javascriptből.

HTML:

<input type="text" name="email2" id="email2">

CSS:

#email2 { display: none; }

Javascript:

$(document).ready(function() {
$('#email2').remove();
});

Ezekután pedig csupán a feldolgozásnál kell egy kitételt tennünk, hogyha az email2 mezőnknek van bármi tartalma, akkor az űrlap feldolgozását szakítsuk meg. Mivel az email2 mezőt igazi látogató nem fogja tudni kitölteni, ezért a kitöltöttség egyértelműen jelzi, hogy ez egy spam bot.

Session ellenőrzés / Cookie

Kevésbé hatékony módszer, mint az előző, de miért ne használnánk, hiszen ennek a beépítése szintén pár percet vesz igénybe.

Mivel a spambotok nem "valódi böngészők", és ráadásul erőforrás igényesek is, ezért nem fogják létrehozni a weblap által küldött cookiekat. 

Így egyszerűen hozzunk létre minden látogatónak egy cookie-t a futás kezdete előtt, és az űrlap elküldésekor ellenőrizzük, hogy ez létezik-e. Ugyanezt meg lehet csinálni egyszerű munkamenet létrehozással is, mivel ebben az esetben a munkamenet azonosítója tárolódik cookie-ban.

Egyszerű kérdés beépítése

A problémám ezzel pont ugyanaz, mint a captchaval. Igaz, hogy hatékony megoldás - mert a botok nem fognak válaszolni ezekre a kérdésekre, ugyanakkor a látogatókat is irritálja.

Tapasztalatom szerint egyébként kevésbé, mint a captcha, ezért került elé a listában. A módszer egyszerű. Kiírunk például ilyet: " 3 + 2 = ", és kérünk egy választ rá. 

Természetesen feldolgozásnál tudnunk kell, hogy mit kérdeztünk meg éppen. Számok esetén ez változhat könnyedén, szöveges kérdések esetén pedig érdemes pár opciót váltakoztatni.

Csak olyan szöveges kérdést tegyünk fel, amire MINDENKI tudja a választ, ráadásul gyorsan és csuklóból, de szerintem az első osztályos matek a nyerőbb.

Ezt a megoldást már csak akkor használjuk, ha az előző kettő megbukott.

Captcha beépítése

Captchanak nevezzük azokat a teszteket, amik a valódi látogatót próbálják megkülönböztetni a botoktól.

Számtalan captcha létezik, ezek között is vannak hatékonyak és már nem annyira hatékonyak, illetve vannak a felhasználókat kevésbé idegesítőek és nagyon idegesítőek. 

Azt mondom, hogy lépésről lépésre szigorítsuk az űrlapunk elküldését. Vagyis először inkább alkalmazzuk a rejtett email mezőt és a cookie ellenőrzést. Ha ígyis sok spam átjön, akkor jöhet a captcha. Ugyanis ez már mindenképpen a felhasználói élményt fogja rontani azzal, hogy valamiféle interakciót várunk el a látogatónktól. Lássuk be, ha valami krix krax szót kell megfejtenie és begépelnie - ami néha tapasztalom, hogy nem sikerül, vagy a mondjuk fotókon ixelgetnie azokat, amiken van jelzőlámpa, lehet hogy kétszer is meggondolja, hogy akar-e neked üzenetet küldeni.

Szóval csak akkor használjuk, ha tényleg nagyon durva a helyzet, és semmi más nem segített.

Egyébként a Google saját captcha megoldását ajánlom. Részleteket itt találsz: https://www.google.com/recaptcha/intro/v3.html

Captchat és egyszerű kérdést ne használjunk egyszerre. A felhasználók irritálásának is van határa. :-)

 

 

Keress meg az elérhetőségeimen:
Simon Gábor
webfejlesztő

Írj e-mailt az elérhetőségeddel, és visszahívlak!

Vagy küldj üzenetet az alábbi űrlapon keresztül!