Hlavní navigace

Jak bojujeme proti spamu pomocí klíčových slov

9. 1. 2011 13:56 (aktualizováno) Petr Krčmář

Spam, spam, spam. Už jsem tu o něm psal. Snažíme se bojovat dvěma způsoby a zdá se, že to funguje. Bohužel se občas objeví problémy, ale vy nám s nimi můžete pomoci.

Už v létě jsem tu psal jeden rozhořčený článek, kde jsem se vyznal ke svému (temnému a zápornému) vztahu ke všem těm spammerským… však víte. Od té doby jsme začali intenzivně bojovat a to dvěma způsoby: jednak blokujeme IP adresy a nově také blokujeme klíčová slova. V případě IP adres jsme nuceni blokovat celé rozsahy (obvykle poslední bajt, někdy jsou třeba dva!), protože spammeři zjevně vlastní velmi často celé bloky adres a blokace jedné je naprosto neúčinná a okamžitě začne chodit spam z jiné, která je třeba hned vedle. Tenhle postup se ukázal jako velmi účinný a objevuje se jen minimum problémů (vlastně se ozval jen jeden člověk, kterého blok postihl – okamžitě jsme ho s omluvou upravili).

S nápadem blokovat klíčová slova přišel Martin Malý, který něco podobného kdysi nasazoval na Bloguje.cz a zkušenosti prý byly vynikající. Stačilo zvolit asi dvacet blokovaných slov a z desítek tisíc spamů denně padl počet na několik málo kusů. Jelikož u nás se taky velká část slov nebo adres opakuje, ukázalo se to jako velmi dobrý nápad. Nasazeno to bylo někdy ke konci roku a to už jsme měli předem vytvořený seznam několika desítek slov, která jsme naplnili. Výsledek se dostavil velmi rychle, spamu opravdu výrazně ubylo, pořád sledujeme všechny diskusní příspěvky (a že jich je), ale spam je už výjimečný. Postup při zachycení je ale stejný: zabanování IP rozsahu plus vytipování klíčových slov a jejich blokace.

Bohužel blokace slov přinesla i problémy, jak ukázala naše redakční schránka. Občas se totiž objeví falešně pozitivní příspěvek, který je odeslán do /dev/null. Problém je v tom, že některá anglická slova (třeba název farmaceutického přípravku Cialis) nám kolidují s českými slovy (tady třeba Socialismus) a formulář vám pak zabrání v odeslání. Nechali jsme si proto doprogramovat možnost, která dovoluje vypnout u konkrétních slov jejich „rozšiřování“ a pak se za slovo „Cialis“ bere skutečně jen tento tvar a jakákoliv změna pak už znamená jiné slovo a filtrem projde.

Tak či onak potřebujeme tuhle funkčnost ladit, hlavně kvůli kolizím slov nejen českých, ale i anglických. Třeba velmi oblíbené slovo „lease“ se nám sráží s „release“, což je na Rootu docela často používaný výraz. Potřebujeme to tedy poštelovat tak, aby se v běžných českých příspěvcích problémy pokud možno nevyskytovaly.

Co tedy dělat, pokud vám systém odmítne vložit regulérní příspěvek? Můžete se pokusit zjistit slovo, které se mu nelíbí pomocí odmazávání částí příspěvku. Prostou metodou půlení intervalu na něj přijdete a můžete jej změnit. V každém případě nám ale napište do redakce (mail je redakce zavináč root.cz) a konkrétní problém nám ohlašte, abychom mohli udělat zásah do filtrů. Pokud se vám klíčové slovo hledat nechce, prostě zkopírujte text celého neodeslatelného příspěvku do mailu a pošlete nám ho.

Poznámka na konec: ta klíčová slova nikde nezveřejňujeme, abychom tím nenahrávali spammerům. Pokud by se nad formulářem objevilo „nelíbí se nám tato slova:…“, mohli by (dnes často lidští) spammeři svá slova začít upravovat. Ale vězte, že se jedná o typická spamovací slova jako „rolex“, „replica“, „lacoste“ (velmi oblíbené) a podobně. Takže za normálních okolností byste je v textu opravdu použít neměli.