© 2013 All rights reserved.
0

Antispam filter

Se spamem v komentářích se setkal snad každý. Se zabezpečením se často setkáváme v souvislosti s komentáři, nebo návštěnvími knihami. Jak se spamu nenásilně bránit?antispam

Spam v komentářích je v poslední době často se vyskytovaným problémem. Jednou možností je moderovat komentáře, aby se spam nedostal na web, druhou možností je udělat antispamový filtr, kterým spamovací robot neprojde.

Nenásilný filtr

Antispamový filtr by měl být udělán tak, aby nevadil uživatelům, a aby si uživatel filtru nemusel vůbec všímat.

Často se tak setkáváme s kódem v podobě captcha (generovaný obrázek), který je uživatel nucen opisovat, aby se rozlišilo mezi robotem a uživatelem.

Popřípadě kód captchy nahrazuje bezpečnostní otázka, kterou uživatel musí před odesláním formuláře správně zodpovědět, aby získal povolení k odeslání formuláře.

Jednoduchý filtr

Jednodušších či složitějších antispamových filtrů a triků najdete na internetu nespočet.
V našem filtru využijeme javascript v kombinaci s bezpečnostní otázkou.

Vymyslíme si bezpečností otázku, například 1 + 1 = ?, kde na místo otazníku bude doplněn input formuláře pro odpověď.

Pro správné odeslání formuláře bude muset souhlasit výsledek otázky a v případě, že nebude, snadno tak rozlišíme spamového boota.

Abychom nemuseli obtěžovat uživatele, využijeme pro doplnění inputu pro odpověď právě zmiňovaný javascript.

Navíc pomocí javascriptu celý kód s bezpečnostní otázkou můžeme skrýt, aby jej uživatel vůbec neviděl.

Pokud budeme dělat jak skrytí prvku tak doplnění hodnot pomocí javascriptu, vzniká nám ta výhoda, že pokud když mít uživatel javascript vypnutý, pole se mu zobrazí a on může otázku doplnit sám, pokud bude mít javascript zapnutý, bude se pole doplňovat a skrývat automaticky, takže jej nebude vůbec rušit a uživatel si tohoto zabezpečení vůbec nevšimne.

Bezpečnostní otázku si proto umístíme do libovolného elementu na stránce, například SPAN, kterému nastavíme style.display na hodnotu none:

U formuláře nastavíme do atributu onsubmit doplnění hodnoty do inputu a tím je hotovo.

Celý jednoduchý příklad použití je zde:

Comments are closed for this page

About
Hi, i am programmer from the Czech Republic. I love web development (Ruby, Ruby on Rails, PHP, Nette) and iOS development (Objective-C, Cocoa).
To cooperate, here is my phone:
+420 608 836