Antibot: zatím asi nejlepší ochrana před spamem v Drupalu

Když skončila antispamová služba Mollom, byl jsem docela smutný, protože fungovala skvěle a s weby na Drupalu tvořila spolehlivý tandem. Všechny ostatní alternativy měly nějaká ale. Před 14 dny jsem nasadil řešení Antibot a zdá se, že tohle je můj nový favorit.

Reklama

Se spamem v komentářích, diskuzním fóru nebo u kontaktních formulářů na webu se potýká každý, kdo provozuje nějaké stránky. Já to před lety nejen na Maxiorlovi vyřešil nasazením služby Mollom. Fungovala na základě analýzy obsahu, tudíž řešila i lidmi vkládaný spam, nejenom ten od robotů.

Nicméně Mollom letos na jaře skončil a nastal čas hledat alternativy. Pro redakční systém Drupal se v podstatě nabízí následující možnosti ochrany před komentářovým a podobným spamem:

Captcha – pro většinu lidí výchozí modul. Umí matematickou captchu, kdy uživatel zapisuje výsledek, a obrázkovou, kdy uživatel opisuje různě zdeformované znaky. Matematickou roboti projdou jako nůž máslem. Obrázkovou ochranou také, což vás nutí písmenka a čísla na něm stále více deformovat, až to pro uživatele není čitelné. A roboti stále projdou.

Captcha Riddler – poměrně spolehlivá ochrana, která stojí nad základním modulem Captcha a nabízí ochranu v podobě kontrolní otázky a definované správné odpovědi. Nevýhodou je neskutečný uživatelský opruz a potřeba zvolit takovou otázku, se kterou si robot neporadí, ale zároveň na ni bude znát odpověď i, řekněme, méně vzdělaný uživatel.

reCaptcha – můj nedávný favorit. Jedná se opět o nadstavbu nad modulem Captcha, tentokrát v podobě řešení od Google. Pod formulářem se objeví zatrhovátko, kterým uživatel sdělí, že není robot. Pokud Google usoudí, že přesto robot je, zobrazí mu panel s několika fotkami a požádá jej o výběr například všech fotek s automobilem.

Pro některé uživatele to opět může být otrava. Na Maxiorlovi mi tato ochrana začala zlobit tím, že denně propustila deset až dvacet spamů v azbuce. Buď jde reCaptcha jednoduše rozlousknout automatem, nebo byla chyba v příslušném modulu pro Drupal a jeho implementaci reCaptchy.

Honeypot – tento modul funguje bez základního Captcha. Neobtěžuje uživatele a na roboty klade pastičku tím, že připraví pro uživatele neviditelné pole. Předpokládá, že robot jej vyplní, tím se odhalí a jím odeslaný formulář tedy bude zahozen. Zní to dobře, ale v praxi se mi stávalo, že tato ochrana byla dost nespolehlivé řešení. Většina robotů se nachytat nenechala a za den bylo na Maxiorlovi několik desítek spamových komentářů.

Všechny výše uvedené moduly mají navíc jednu zásadní nevýhodu. Ruší cacheování stránky, na které se nachází formulář s jejich ochranou. Pro větší weby je to krajně nepříjemné. Nemůžu říct, že by mi to zvlášť vadilo na Maxiorlovi, protože i tak byl díky Linode velice svižný. Na druhou stranu se člověk připravuje o jednu z výhod Drupalu.

Pak tu máme moduly jako AntiSpam, který je napojený na službu Akismet známou z WordPressu. Modul však není k dispozici pro Drupal 8. Podobný modul poskytuje napojení na antispam službu CleanTalk. U obojího mi s příchodem GDPR začalo vadit, že využívají zpracování vstupních dat u třetí strany.

Antibot – momentálně asi nejlepší antispam pro Drupal

Nedávno jsem objevil další modul, který je momentálně mým favoritem pro antispamovou ochranu v Drupalu. Antibot funguje na jednoduchém principu. Předpokládá, že spamovací robot nepoužívá JavaScript a rozumí jen čistému HTML. Tím pádem neuvidí správně nastavený formulář, který se na stránce upraví až po jejím načtení, a to právě JavaScriptem.

Je to jednoduché jak facka, Antibot nepotřebuje žádný další modul ke svému fungování, ani žádné propojení na služby třetích stran. A co je velice příjemné, jím ochráněné stránky s formuláři jsou standardně ukládány do cache Drupalu, jak by tomu mělo správně být.

Od formuláře to sice odřízne lidi bez zapnutého JavaScriptu, ovšem takových je naprosté minimum. Pokud na web přijde člověk s běžnou konfigurací prohlížeče, vidí prostě formulář, který jej neobtěžuje žádným opisováním kódů nebo něčím podobným.

Pokud přijde na web robot bez JavaScriptu a vyplní formulář, ten se odešle na adresu /antibot, kde se data z něj zahodí. Robot s JavaScriptem obvykle taky nepochodí, protože Antibot čeká na stisk klávesy a pohyby myši.

Nastavení modulu je velice snadné. Po jeho zapnutí přejděte do administrační části Nastavení > Systém > Antibot, kde zadáte ID formulářů, které chcete chránit. Lze použít hvězdičkovou konvenci, takže např. comment_node_* bude chránit jak comment_node_article, tak comment_node_page (tedy komentáře u článků i stránek).

Antibot - nastavení ochrany před spamem v Drupalu

Samozřejmě, pokud neznáte ID příslušného formuláře, Antibot vám pomůže. Zapněte si v jeho nastavení volbu Display form IDs a přejděte na stránku, kde se formulář nachází. Objeví se hlášení s identifikátorem formuláře, které jej zkopírujete do nastavení Antibotu. Zobrazování IDček pak zase vypněte.

Antibot mám na Maxiorlovi něco přes týden a zatímco před jeho nasazením jsem se zapnutou reCaptchou mazal denně pár desítek spamů a další blokoval pomocí pravidla sledujícího výskyt některých slov v textu komentáře, teď mám jen a pouze Antibot a mazal jsem za celou dobu jeden jediný komentář.

Zatím mi tedy připadá jako velice povedené řešení. I díky tomu, že stránky s formuláři se ukládají do cache. Doufám, že mi tedy nějakou dobu udrží spam na uzdě.

Tagy: 

Reklama

Komentáře

Díky za informace o CAPTCHÁch.

Jako jedna z mála funkčních CAPTCH, nezávislých na nějaké službě se mi osvědčila ASCII art CAPTCHA z modulu CAPTCHA Pack.
Uživatel musí zadávat kód, ale robot zatím neprošel.

Komentář je podepsán: SignedText.com/cs/code/PTBODKNRXQ

Jo, ale nevýhoda čehokoli vycházejícího z modulu Captcha je skutečnost, že vypíná na stránce cacheování.

Majitel Maxiorla. Nabízím mimo jiné placené poradenství pro Drupal. Jsem i na Twitteru.

Přidat komentář