20. 2009
září
Každý, kdo má svůj blog se už asi setkal s nějakým tím nevyžádaným komentářem. Když jsem si programoval svůj vlastní blog, říkal jsem si, „kde by se tak na mojem blogu vzal spam“, avšak v momentě kdy adresa blogu dosáhla PR1, objevila se hromada spamu a já musel uvažovat, jak se bránit.
Je samozřejmě spousta způsobů jak se bránit. Bohužel buďto ochrany otravují uživatele (captcha), nebo administrátora (schvalování komentářů). Pokusím se zde popsat několik možných způsobů a mé vlastní řešení spolu s implementací.
Captcha je jeden z nejpoužívanějších způsobů ochrany. Jedná se o obrázek obsahující kombinaci čísel, písmen a nebo rovnou slov, která jsou však zkomolená aby se velice těžko četla. Opisování zkomolených znaků je však pro uživatele velice nepříjemné a obtížné. Poslední dobou se navíc objevují „sofistikovanější“ captchy, kdy máte vybrat různé obrázky nebo captchy absolutně nečitelné. Pověstnou se stala captcha, kterou svého času používal Rapidshare. (Cílem bylo vybrat 4 znaky, za kterými se schovávala kočka). Oblíbená je také reCaptcha, kterou docela nedávno odkoupila firma Google.
Způsob, který jsem na svém blogu používal původně. Jednoduchý
příklad ve stylu 3+2= dokáže relativně snadno a bez námahy spočítat
každý. Bohužel větší problémy s těmito příklady nemají ani boti a
tak jsem později přešel na verzi 3 krát 4, ale ani tato se mi příliš
nelíbila. Opět se najdou i neskutečně sílené
verze tohoto způsobu s jejíchž spočítáním by měl problém nejeden
matematik. na druhou stranu proč ne? Aspoň by nepsal komentáře každý
trotl
Jednoduchá a nenáročná ochrana stylem „jaký je dnes den“ nebo „jaké zvíře je na obrázku“. Vcelku účinná metoda vyžadující zamyšlení uživatele.
Způsob sice velmi účinný, ale opravdu náročný na administraci. Neustálé kontrolování administrace webu, jestli není nová žádost o přidání komentáře je opravdu opruzující.
Podle mě jedna z nejlepších metod. Samozřejmě není tato metoda bezchybná, ale je nenáročná jak na uživatele (který použití ochrany nepozná) tak na administrátora (stačí jednou za čas zkontrolovat, zda nebyly označeny špatné komentáře). Pro ochranu na tomto blogu jsem proto zvolil Akismet. Dobře známá služba, kterou používá třeba populární WordPress v základní instalaci.
Jak jsem slíbil, podíváme se na jednoduchý příklad použití Akismetu.
Nejprve je třeba stáhnout si knihovnu implementující API Akismetu. Já používám verzi pro PHP5.
Další důležitý krok je získat WordPress API klíč. Tento klíč získáte registrací na www.wordpress.com. Klíč by měl přijít v uvítacím e-mailu. Pokud již registraci máte, stačí se přihlásit do administrace → profil, kde svůj API klíč uvidíte.
A nyní samotné použití.
<?php
require dirname(__FILE__) . '/Akismet.php';
//nastavení - zadáme klíč a url webu
$WordPressAPIKey = '123456789012';
$MyBlogURL = 'http://opicinoviny.cz';
//vytvoříme instanci akismetu
$akismet = new Akismet($MyBlogURL ,$WordPressAPIKey);
//jméno/nick autora komentáře
$akismet->setCommentAuthor($jmeno);
//e-mail autora
$akismet->setCommentAuthorEmail($email);
//zadaná webová stránka
$akismet->setCommentAuthorURL($url);
//text komentáře
$akismet->setCommentContent($comment);
//stálý odkaz na článek
$akismet->setPermalink('http://opicinoviny.cz/obrana-proti-spamu-v-komentarich');
//pokud není spam
if(!$akismet->isCommentSpam())
//pokud komentář není spam, uložíme ho do databáze
else
// pokud je, opět ho uložíme do databáze (kvůli možnosti špatného označení) a označíme ho jako spam
?>
A to je vše. Třída ještě obsahuje metody na nahlášení špatného označení spamu
<?php
//nahlásit neoznačený spam
$akismet->submitSpam();
//nahlásit komentář, který byl nesprávně označen za spam
$akismet->submitHam();
?>
Tyto metody jsou však nepovinné, avšak pomáhají autorům zlepšovat algoritmy odhalování spamu.
Na konec ještě uvedu, že Akismet je možno používat zcela zdarma pro osobní blogy s nekomerčním využitím. Více v pravidlech na akismet.com
Jakou ochranu na svém webu používáte vy? Jaké s ní máte zkušenosti?
Programování | zobrazeno: 2314 | 1 komentář Pokračovat ve čtení