Jak ve WordPressu omezit komentářový spam

Nežádoucí komentáře trápí snad všechny webové stránky, kam nechodí jen majitel webu samotný. Po instalaci nového webu se někdy objeví velmi rychle, až má člověk podezření, že je instalátor přivolá. Situace je ale taková, že WordPress = čtvrtina světového internetu, takže je vůči němu vedeno množství různých útoků. Tedy také proti vašemu webu.

Co je to spamový komentář (nebo komentářový spam?)

Jedná se o strojově (programem – spambotem) vkládaný text s mnoha různými odkazy. Odesílatel, text, průvodní e-mailová adresa, kterou WordPress vyžaduje, jsou nesmyslné, resp. falešné. Jediným důvodem je získání odkazu z vaší stránky na stránku útočníka (nebo objednatele). Tedy té, která je součástí komentáře. Počet odkazů, které vedou na stránku, totiž slouží k hodnocení kvality stránky. Odkaz ale musí vést z relevantních stránek, aby byl považován za kvalitní – to spammeři jaksi ignorují a používají raději metodu „hromadného náletu“.

Principiálně se komentářového spamu nelze zcela zbavit. Je to běžný stav. Tím nechci v žádném případě tvrdit, že je to v pořádku. Jen to, že je to na každém webu a zápasí s tím každý provozovatel. Nelze řešit příčinu, tzn. zamezit spambotům v útocích, lze řešit jejich omezování a snižování dopadů.

Základem je správné nastavení komentářů

Špatné je, pokud se spam dostane až na výsledný web a vidí ho čtenáři. To je příznak toho, že je WordPress špatně nastavený. I základní nastavení totiž umožňuje příchozí spam zablokovat. Přesněji řečeno – zablokovat lze každý nový komentář. Nastavení se nachází v hlavní nabídce Nastavení > Komentáře.

Základní nastavení komentářů
Základní nastavení komentářů

Tohle nastavení ovšem platí pro budoucí komentáře. U vydaných příspěvků a stránek se musí tato možnost zakázat pomocí hromadných úprav.

Hromadná úprava u již existujících článků
Hromadná úprava u již existujících článků

Další nastavení určuje politiku pro přidávání komentářů. První šipka ukazuje na povinnost zadat jméno a e-mail. Jako ochrana proti spamu to nefunguje, protože lze vyplnit cokoliv, ale pokud máte na webu věrné čtenáře, můžete je takto identifikovat. Nemá ale smysl omezovat komentující uživatele pouze na ty registrované (druhá šipka) – dnes se vám na webu nikdo nebude registrovat jen proto, aby mohl napsat komentář. I tak je těch pravých komentářů jako šafránu, takže proč klást čtenářům ještě nějaké překážky?

Docela dobrá ochrana je uzavření komentářů po nějaké době (třetí šipka), zřejmě to nebude 14 dní, ale třeba 60; rozhodně to má smysl. Pokud jednu vaši stránku začne nějaký robot spamovat, tohle je první krok, který by se měl provést.

Politika přidávání dalších komentářů
Politika přidávání dalších komentářů

Klíčové je nedopustit, aby se komentáře samy schvalovaly a publikovaly. Nebudete jich mít tolik, aby vám činilo problém je schvalovat ručně. Takže nastavte ruční schvalování, druhý přepínač je v tomto případě v podstatě neaktivní.

Základní brzda pro spamboty
Základní brzda pro spamboty

Dalším krokem je odfiltrování komentářů podle obsahu. Pokud obsahuje odkaz, měl by být zadržen ke schválení (což bude každý komentář, pokud máte aktivní přepínač Každý komentář musí být schválen ručně výše). Lze ale také zadat zakázaná slova, která komentář buď zadrží, nebo rovnou přesunou do koše. Na tomto principu je nedostačující to, že slova byste museli zadávat ručně, stejně jako případné IP adresy nebo jiné identifikační prvky.

Blacklisty pro komentáře
Blacklisty pro komentáře

Kladení dalších překážek

Typickou obranou proti vkládání komentářového spamu je vytvoření překážky, kterou robot nedokáže překonat. Předpokládá se tedy, že ji překoná jenom člověk. Jedná se o úlohy několika principů, které ale mají nevýhodu – obvykle obtěžují uživatele, který za nic nemůže.

Kontrolní otázka nebo jednoduchá aritmetická operace. Správce webu nastaví jak otázku, tak správnou odpověď. V českém prostředí pořád docela spolehlivé, ale obtěžuje to uživatele. Jaké je hlavní město ČR? Kolik je 6+dvanáct?

Captcha. Pokročilá úloha, např. rozeznávání textu ve fotografiích nebo v případě reCaptcha od Googlu rozeznávání objektů na fotografiích. V obou případech se „práce“ uživatele používá pro pochopení toho, co na fotografii vlastně je, takže se výsledky ukládají a pomáhají při pochopení obsahu nafocených nebo naskenovaných dokumentů nebo objektů. Google navíc využívá historii vašeho účtu a vašeho chování, aby se ujistil, že jste to vy, člověk. Můžeme tomu říkat strojové učení.

Příklad pluginu: reCaptcha in WP Comments Form

Jenže pak přijde robot, kterému to všechno zapomněli říct.

Je to samozřejmě vtip, spam vkládají programy, ne mechaničtí roboti. 🙂 Ale ten přepínač zřejmě brzy ztratí zbytky svého opodstatnění (pokud kdy nějaké měl), Google bude vše posuzovat jen podle historie chování či jiných metrik.

Pastičky. Dalším prvkem je kladení pastí (tzv. honeypot, doslova hrnec medu)  robotům – ve formuláři jsou skrytá pole, která se běžně používají pro ověření, že odeslaná data jsou platná. Jedním z prvků je tedy nastražení přepínače, který je uživateli neviditelný a tudíž ho nikdy nemůže aktivovat, ale spambot to udělá, čímž se odhalí.

Principiálně jde o popření nasazených ochranných prvků – např. se nesmí vyplnit položka „Name“, kterou uživatel nevidí, a své jméno vyplňuje do položky s jiným označením, což robot nepozná. Nebo se nesmí aktivovat přepínač nebo mezi pokusy o vyplnění následuje časová pauza nebo se okno zobrazuje pomocí JavaScriptu (který spambot nemá k dispozici) nebo …

Nápadů může být hodně, faktem je, že část z nich omezuje uživatele, což si nikdo nepřeje, a hlavně – dřív nebo později se spamboti přes pasti dostanou a je potřeba vymyslet něco jiného.

Příklad pluginu: Anti-spam

Do jisté míry je efektivní metoda blokování podle zemí. Pokud víte, že prodáváte jen do ČR a SR, pak si zřejmě můžete dovolit zablokovat všechny přístupy z jiných zemí, minimálně Jižní Ameriku, Afriku, Rusko, Ukrajinu, Turecko, Indii, Pakistán. Možná přijdete o pár zákazníků, kteří mohli chtít nakoupit z letiště cestou z exotické dovolené, ale zablokujete velkou část útočníků. Přestane to ovšem fungovat, jakmile si spamboti najdou cestu přes Francii, Německo nebo Švédsko, tam už je paušální blokování celé země nevýhodné a riskantní. A co třeba Spojené státy..?

E-mail od hlídajícího iThemes Security
E-mail od hlídajícího iThemes Security

Braňte se v davu

Nejefektivnější obrana je v současné době společná obrana. Tedy zapojení webu do sítě dalších webů, které sdílejí informace o útocích (často nejen spambotů) a dokáží je využívat. Funguje to tedy tak, že příchozí komentář je otestován vůči společné databázi spammerů a pokud je identifikován jako spam, je zadržen a na web se vůbec nedostane. Je to velmi spolehlivé řešení a díky velkému množství zapojených webů se stále zlepšuje. Princip sdílení je výhodný také tady.

Zaběhnutým příkladem je služba Akismet.com, dnes součást služeb společnosti Automattic, kam patří také WordPress.com nebo třeba WooCommerce. Pro komerční účely je zpoplatněná, cenové plány se v době psaní textu právě měnily, tak se podívejte, jak to dopadlo.

Další službou je CleanTalk.org, kde stojí např. tři weby cca 400 Kč na rok, jeden web je ještě levnější. Kromě boje se spamem dokáže blokovat také různé další útoky z adres identifikovaných jako nebezpečné. Je potřeba nainstalovat a autorizovat dva pluginy:

Pak je každý pokus o vložení komentáře ověřován, stejně jako např. pokus o příhlášení. Ale tento článek se zabýval jen komentářovým spamem, ostatní formy útoku si necháme na jindy.

Využijete některý z uvedených pluginů?

Pokud se vám článek líbil, sdílejte ho, prosím!

CleanTalk: Mapa útoků
CleanTalk: Mapa útoků

Newsletter Rádce pro správce

Každou středu rozesíláme část svého know-how, které jsme pracně získali během posledních let. Zadarmo každému, kdo má zájem stát se zkušeným správcem WordPressu. Není určený našim zákazníkům, nýbrž našim kolegům v oboru. Vracíme tak komunitě to, co jsme získali od jiných. Podívejte se do jeho archivu.