Tak jak roste návštěvnost, tak rostou i spamové komentáře. Zatím se je dařilo dobře filtrovat a propašovat se jich podařilo opravdu jen minimum. Za to vše vděčím pluginu Akismet, ale i ten už je teď někdy nedostatečný. Proto jsem hledal nějaký užitečný způsob, jak SPAM eliminovat úplně na nulu. Nechci si však své postupy nechat pro sebe a tak jsem se rozhodl sepsat tento článek 😉 .

Proč nepustit spam

Spam není jen otravný tím, že nás zdržuje a ubírá drahocenný čas. Může také váš web začernit v očích vyhledávačů, jelikož odkazy často vedou na pochybné weby. Spamování vašeho webu má i za následek jeho zpomalení, jelikož vyřizuje spousty požadavků, které na něj posílají roboti. Dříve jsem četl, že 60% trafficu jsou jen roboti.

Pluginy

Prvním způsobem jak se z větší části zbavit spamu, je použít nějaký plugin, který automaticky odfiltruje nevyžádané komentáře. Tyto pluginy fungují na principu obrovských databází. Čím více webů plugin využívá, tím více dat pro budoucí identifikaci plugin má. Většina komentářů je si velice podobná a má podobnou strukturu. Bohužel i roboti jsou vyvíjeni a někdy i takovéto pluginy propustí spam.

Plugin, který můžu za sebe doporučit je Akismet, je dodáván rovnou s wordpressem a za jeho vývojem stojí především firma Automattic, která se podílí i na vývoji wordpressu samotného. Dříve se mělo za to, že Akismet sám vytváří spam na webech, kde je nainstalován. Zkusil jsem nainstalovat Akismet na weby, kde se spamem nebyl problém. Instalací pluginu se nic nezměnilo a spam nepřibyl. Tak že pokud Akismet něco takového dělal, tak už tak nečiní a nebo je potřeba hodně navštěvovaný web 😉 .

Zrušené komentáře

Když zakážete komentáře, tak nemají roboti možnost kam vkládat svůj spam. Bohužel nevýhodou je, že nemají možnost se vyjádřit i opravdoví návštěvníci. Je tedy dobré, místo zrušení komentářů u všech článků a stránek, raději zvolit ohleduplnější způsob.

Pokud mluvím o přijatelnějším způsobu, tak tím myslím, že zakážete komentáře jen u starších článků/stránek. WordPress má takovouto funkci již v sobě zabudovanou, jen málo kdo ji ale využívá. Najdete ji v Nastavení -> Komentáře .

Obrana proti SPAMU v nastavení komentářů

Možnosti nastavení komentářů WordPress

Další možností, kterou můžete nastavit v nastavení komentářů, je že každý komentář je nutno schválit. Tuto možnost doporučuji pouze u menších webů a nebo společně s nějakou další ochranou, jinak nebudete dělat nic jiného, než že se budete prokousávat hromady balastu. Doporučuji ještě i zatrhnout možnost, že autor, který již má schválený komentář, nemusí čekat na schválení ostatních.

V nastavení je však ještě jedna dobrá věcička, sice je nutné si s ní dosti pohrát, ale potom velice dobře plní svůj účel. Je to Černá listina. Ta má za úkol, házet do spamu vše, co jen částečně obsahuje zmíněné řetězce v černé listině. Na černou listinu je dobré dávat IP, odkud vám přišel nějaký spam, někteří lidé dávají seznam IP na internet. Bohužel je málo kdy aktualizují a IP si snadno robot změní. Potom je velice vhodné zablokovat i koncovky emailů, které s velkou pravděpodobností, vaši návštěvníci nebudou využívat např. .ru. Také doporučuji přidat slova, která se nejčastěji vyskytují ve spamu, jejich rozsáhlí seznam najdete zde. Na českých webech, málo který uživatel bude psát anglicky nebo dokonce čínsky.

Žádné oznámení

Ve stránce nastavení pro komentáře, je ještě několik věcí, které je si také dobré ujasnit. Dosti se hodí, pro zabránění spamu.

Nastavení WordPress komentářů proti spamu

WordPress detailní nastavení komentářů

Dál je dobré si nastavit automatické zadržování. Je to alternativa k Černé listině, ale pokud se v komentáři objeví nějaká část textu, z tohoto seznamu, tak je nutné příspěvek schválit ;). Taky je zde nastavení, kolik je přijatelných odkazů, pro komentář. Ve spam komentářích je vždy spousty odkazů, tak že díky tomuto se vám aspoň spamové komentáře nezobrazí, ale budete si je muset roztřídit ručně.

Další možností je, povolit komentáře jen registrovaným uživatelům. Osobně tohle vidím jako použitelnou volbu jen pro weby, kde se uživatelé registrují i z jiného důvodu. Já osobně jsem nikdy neměl takové nutkání něco okomentovat, abych se registroval. Je jasné, že je nutné povolit registraci uživatelů, s tím také dáváte možnost útočníkům, získat kontrolu nad vašim webem. Proto osobně doporučuji, mít registraci zakázanou.

Poslední a velice důležitou možností je část Povolit oznámení příchozích odkazů z jiných webů (pingbacky a trackbacky). Tato možnost má za úkol informovat vás, pokud vás někdo zmínil na nějakém jiném webu, který pohání wordpress. Musí mít však povolenou možnost, zasílat upozornění. Mně se to za celou dobu stalo jen jednou. Naopak spam roboti této funkce využívájí hodně.

Kontrolní otázka

Jistě to každý znáte, takové ty otravné kódy, kde jsou nesmyslné znaky, které musíte opsat, aby jste prokázali, že nejste robot. Bohužel se tento způsob dostal do takové fáze, že většina robotů si s takovouto otázkou poradí lépe než člověk 😀 . My máme tu výhodou, že máme diakritiku a tak je vhodné ji v takovýchto otázkách využít. Roboti si většinou s diakritikou neporadí a tak špatně odpoví 😉 . Možností je také, vložit nějaké skryté pole, které běžný uživatel nevidí a tak jej nevyplní. Zůstane tedy prázdné. Robot se ovšem snaží vyplnit všechna pole a moc nekouká na viditelnost pole 🙂 .

Prošli jsme si již ty základní postupy, které můžete provést v nastavení wordpressu. Teď přejdeme na nastavení, ke kterým je potřeba menší zásah do samotného kódu wordpressu. Pojďme tedy na to 😉

Žádná URL žádný spam

Spam má za účel získat co nejvíce odkazů, k čemu by jim také byl jen obyčejný text 😀 . Tak že když nebude kolonka pro URL ve formuláři a do černé listiny dáte zkratku http:// , tak se většině spamů vyhnete. O odstranění URL kolonky se postará tento kód. Všechny uvedené kódy zapisujte do souboru functions.php, který najdete ve vámi užívané šabloně.

//odstranění URL políčka z formuláře
function remove_comment_fields($fields) {
unset($fields['url']);
return $fields;
}
add_filter('comment_form_default_fields','remove_comment_fields');

Ještě je také možnost zamezení automatickému vytváření odkazů. Odkaz se ale v případě, zadaná potřebného HTML tagu vytvoří i tak. Pro zrušení automatického vytváření odkazů využijte tuto část kódu.

// Zrušení automatických odkazů
remove_filter('comment_text', 'make_clickable', 9);

Zamezení přístupu mimo web

Jak jsem zmiňoval již výše, tak většina robotů přistupuje na soubor wp-comments-post.php a nepřistupuje vůbec na váš web. Je tedy nutné zamezit přímému přístupu na tento soubor, aniž by byl odeslán požadavek z vašeho webu. Jsou dva možné způsoby, jeden pomocí .htaccess a nebo pomocí jednoduchého kódu, který zapíšete do souboru functions.php. první si ukážeme pomocí souboru .htaccess.

RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
RewriteCond %{HTTP_REFERER} !.*domena.cz.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]

Místo domena.cz vložte název a koncovku své domény 😉 . Druhá možnost, která dělá to samé, ale bez zásahu do souboru .htaccess.

//Zabránění referral zasílání komentářů
function verify_comment_referer() {
if (!wp_get_referer()) {
wp_die( __('Nemůžete teď zaslat komentář, možná bude nutné povolit referrer ve vašem prohlížeči.') );
}
}
add_action('check_comment_flood', 'verify_comment_referer');

Kontrola

Poslední možností je zase v úpravě souboru functions.php, která vám do furmuláře přidá skrytá pole. Tato skrytá pole běžně SPAM bot nezná a při zasílání požadavku, se jeho požadavek odmítne, jelikož nezašle všechna potřebná data.

// Vytvoření kontrolního kódu
function add_nonce_field_to_comment_form() {
wp_nonce_field('comment_form_nonce_field');
}

// Vložení kódu do fomruláře
add_action('comment_form', 'add_nonce_field_to_comment_form');

// Kontrola validity kódu
function check_nonce_field_on_comment_form() {
if (!wp_verify_nonce($_REQUEST['_wpnonce'], 'comment_form_nonce_field')) {
die('Váš komentář nemohl být odeslán, jelikož chybý důležité informace!');
}
}

// Přidání kontroly validity kódu
add_action('pre_comment_on_post', 'check_nonce_field_on_comment_form');

Jiná obrana

Dalších obran je spousta, třeba blokace IP pomocí .htaccess, ale tento způsob je zdlouhavý. jistě se najdou ještě i jiné způsoby a já jsem uvedl jen ty základní, které by měli fungovat na většině webů. Nejdůležitější je, přizpůsobit svou ochranu na míru svého webu a popřípadě využívat češtinu, jelikož na tu je málo který robot připraven.

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Post Navigation