2013. augusztus 15., csütörtök

Harcolni a spamek ellen... Captcha nélkül?

Egyszer valaki azt javasolta, hogyha már aktívan PHP programozó vagyok, valamint van egy honlapom, az slhungary.hu, akkor mi lenne, ha a blogomban szakmai dolgokat is írnék. A designváltás is ennek a jegyében történt, hiszen hamarosan lesz egy olyan oldal, melynek programozását elvállaltam... de erről később, hiszen az oldal jelenleg még nem aktív.

A CMS oldalak egyik rákfenéje a SPAM-ekkel szembeni harc. Nagyon sokáig a captcha rendszerekben hittek, de mint kiderült, a captcha nemcsak a SPAMrobotok ellen jó, hanem azok ellen a felhasználók ellen is, akik nem tudnak jól olvasni, meg alapban idegesítik az, hogy megszakad a postok elküldésének folyamata. Mert valljuk be, borzalmas egy olyan szöveget olvasni, melyek girbe gurbák, összenyomottak csak azért, hogy az OCR-t használó robotok ne tudják elolvasni. Valamint kiderült, hogy a spammelőket ez sem tartja vissza... főleg a fizetett kis kínaikat, akik CTRL-C CTRL-V módszerrel nyomják az ipart...


Nemrégiben terjedt el egy újabb felfogás, mely szerint a captcha inkább káros, mint hasznos. Egy adminisztrátor készített a közösségi alapú fórumán egy statisztikát, hogy mennyi spammelő volt akkor, amikor nem volt captcha és mennyi akkor, amikor volt captcha. Valamint az összes postból mennyi volt az, ami fel jutott a helyére, és mennyi volt az, amennyi elveszett. (itt olvashatjátok angolul a cikket).

Az tény és való, hogy a Captcha bevezetésével a spamek száma tizedére csökkent, de valójában a tényleges spam 2% volt az összes hozzászóláshoz képest. A spam igazából akkor tud zavaró lenni, amikor a közösségi oldalon nagyon kevés a hozzászóló - pl. egy blog esetében, ahol ritka a hozzászólás. A captcha bevezetése azonban azzal járt, hogy az érdemleges hozzászólások közel 8%-a a captcha miatt veszett el. A statisztika tulajdonképpen nem mutatja azt, hogy csökkent volna a látogatások száma, de egyre több helyről hallani azt, hogy egy captcha rendszer inkább riasztó és felesleges.

Ezek után feltettem magamban a kérdést, hogy milyen módszerek vannak még... és meglepetésembe nagyon sok egyszerű módszer van, melyek nem a hozzászólók képességein alapul (képes-e olvasni girbegurba betűket), hanem a spambotok képességein - illetve azok hiányain. Az egyik ilyen módszer, ami nagyon megtetszett, az a Honeypot, ami nem is captcha...


A Honeypot módszere rendkívül egyszerű: legyen egy űrlapmező, melyet CSS-sel vagy Javascripttel eltüntetünk (inkább CSS-sel, mert az egyik honlap tanúsága szerint már van olyan spambot, mely Javascriptet is használ), és az ellenőrző oldalon csak annyit ellenőrzünk, hogy ki lett-e töltve a mező. Ha ki lett töltve, akkor a hozzászólást dobjuk. Hogy a spambot mindenképpen kitöltse a mezőt, használjunk egy általános elnevezést (pl. name, message, email), és ha van hasonló mezőnk az űrlapban, akkor arra egy másik alternatívát használjunk. Amennyiben valaki olyan böngészőt használ, ahol megjelenik az űrlap, akkor kérjünk csak annyit, hogy "Hagyd üresen ezt a mezőt:".

De egy másik módszer szerint egy egyszerű pipa is elegendő... vagy több checkbox, melyek közül nekünk kell eldönteni, hogy melyiket kell bepipálni. Állítólag ez is nagyon hatékony módszer a robotok ellen, talán még a Honeypotnál, sőt... a captcha-nál is hatékonyabb.

A módszerek egyszerűnek tűnnek, de mégsem az. Ezzel ugyan csapdába csaljuk a robotokat, de csakis őket. A szorgos kis kínaiakat ezzel nem állítjuk meg. De vannak módszerek, melyek őket is csapdába kergetik. Ezen az oldalon konkrét kódokat is találhatunk, hogyan vértezzük fel magunkat, míg egy másik oldalon 10 dolgot sorolnak fel, hogy miként kell kivédenünk ezeket. Az egyik mókás, de vitatható dolog a CTRL+C CTRL+V kivédése azáltal, hogy mérik a kitöltési időt - egy értékes comment nem fog elkészülni egy perc alatt, de egy rövid üzenethez ennél kevesebb kell...

Az első cikk nem tér ki arra, hogy mit tegyen az automatika, ha spamgyanús tartalmat érzékel. Eldobja? Mi van akkor, ha ez nem egy robot, hanem egy ember, aki szidalmazni fog téged azért, mert eldobtad az üzenetét, mindössze csak azért, mert tartalmazott egy-két linket... Erre a második cikk adja meg a választ: a tartalmat ne jelenítsük meg, és legyen logolva minden adat, hogy eldönthessük, hogy az adott tartalom spam volt-e vagy értékes tartalom. Valamint ha egy ember spammel, és azt látja, hogy nem jelenik meg az adott tartalom, akkor nagy valószínűséggel nem fogja folytatni a tevékenységét az oldalunkon. Valamint a spammelő felhasználót nyugodtan kitilthatjuk az oldalról, nem hiszem, hogy meg fog haragudni ránk...

Nincsenek megjegyzések:

Megjegyzés küldése