ugrás a tartalomhoz

spamszűrés php vendégkönyvben

Anonymous · 2006. Május. 28. (V), 19.29
Sziasztok!
Nem értek a php-hez, segítséget szeretnék kérni:a vendégkönyvembe kerülő rendszeres spameket szeretném megakadályozni.Van egy olyan része kódnak,amely azt vizsgálja,hogy ha valaki megad URL címet,abban megvannak-e a szükséges karakterek:

$v['url']=htmlspecialchars("$_REQUEST[url]");
if ($v['url'] == "http://" || $v['url'] == "https://") {$v['url'] = "";}
elseif (strlen($v['url']) > 0 && !(preg_match("/(http(s)?:\/\/+[\w\-]+\.[\w\-]+)/i",$v['url'])))

Ezen az elven a comments változóban szeretném megkerestetni (és ha szerepel, megakadályozni a beírást) ezt:
"&lt;a href=&quot;<http://"
meg lehet-e oldani az if és a preg_match függvényekkel?Úgy hogy ha megtalál hivatkozást, ez következik:

{problem("No SPAM, Thanks!","1");}

Köszönettel:duc-sai
 
1

Badwords vs heurisztikus.

janoszen · 2006. Május. 28. (V), 19.50
Üdv!

Hát, az alapvető védelmen kívül, azaz, hogy megnehezíted a spambotok dolgát mindenféle módszerekkel (CHAPTA, olyan kérdés, amit csak egy ember tud megválaszolni, JavaScript forms, stb), még léteznek a bonyolultabb módszerek, amelyek jobban kímélik a felhasználót.

Az egyik módszer az un. "badword"-ök kiszűrése, azaz a tiltott szavak módszere. Ez lehet egyszerű, azaz egy lista összehasonlítás vagy reguláris kifejezéses.

A másik a heurisztikus szűrő. Ilyen pl. a "bayesian" módszer. Azt hiszem, vannak kész komponensek rá. Ezt tanítani kell. Avagy etetni szeméttel. Ezt hasznos úgy megoldani, hogy a postokra admin módban teszel egy "mark as spam" gombot. :)

Ennyi jutott hirtelen eszembe.