Jak na SPAM na PHPbb fóru?

Stop Spam PhpBB Asi jako každý, jsem si zkusil spustit nejedno fórum (PHPbb) a vždycky jsem měl jednoho úhlavního nepřítele – SPAM! Roboti jsou v dnešní době velmi inteligentní a dokážou rozlousknout kdejakou captchu nebo si spočítat, kolik je 2 + 1.

Skrytý INPUT s WWW nedá Robotům spát!

Na svých stránkách (nejčastěji kontaktní formulář) jsem problém rozesílání SPAMu řešil přidáním neviditelného pole Input (za pomocí CSS vlastnosti display: hidden) a toto pole pojmenoval například WWW. A po odeslání formuláře testoval, jestli toto pole zůstalo prázdné a nebo ho robot vyplnil. A věřte nebo ne, Robot ho vždycky nějakou tou svou URL vyplní. Toto je jeden přístup (originál jsem někde četl buď od @jantichy nebo @DavidGrudl), jak by se to mohlo i na PHPbb fóru řešit.

Ty nemáš JavaScript?

Našel jsem ale ještě jeden způsob a ten je postavený na faktu, že SPAM roboti nejsou obdařeni schopností spustit si na stránce JavaScript.
Návod vychází z článku PHPbb Anti Spam Module na blogu Jonahan.com.
Tento postup jsem zkoušel na forum pro modelky, které běží na PHPbb 3.
Stačí upravit 2 soubory: posting_body.html (styles/název_tématu/template/) a functions_posting.php (includes/)

posting_body.html

Najdeme si v souboru řádek s FORMem (u mě 36) a pod jeho tag vložíme část SCRIPT


<!-- IF not S_SHOW_PM_BOX -->

<form action="{S_POST_ACTION}" method="post" name="postform"{S_FORM_ENCTYPE}>

<script type="text/javascript">

var code = "4567";

document.write("<input type='hidden' name='spammersblow' value='" + code + "'>")

</script>

<!-- ENDIF -->

functions_posting.php

Najdeme v souboru funkci submit_post (u mě 1628) a upravíme následující kód takto:


if ($mode == 'post')

{

if ($_POST['spammersblow'] != '4567')

die("Error, you submitted the form wrongly and are most likely attempting to spam. If so, stop it. You are no good and a pox upon humanity.");

$post_mode = 'post';

$update_message = true;

}

A to je vše!

PS: Ano, pokud má někdo vypnutý JavaScript, tak si na vašem fóru ani neškrtne.

Pokud vám toto jednoduché řešení nestačí, tak doporučuji vlákno Anti-Spam Thread!, kde mnoho dalších možností, jak se SPAMu zbavit.