Od samego początku istnienia forum o pracy za granicą miałem problemy z spam-botami, które natrętnie rejestrowały się na forum. Codziennie było ich około 3-4. Jakby się tylko rejestrowały to nie byłoby jeszcze z tym tak wiele zachodu poza zaśmieconą listą użytkowników. Najgorsze było to, że boty zaczynały tworzyć nowe tematy, w których to nachalne oferowały użytkownikom forum zakup viagry, cialis a nawet obejrzenie tego czy tamtego filmu porno. Tak dłużej być nie mogło..

Nie pomagały zabezpieczenia z urzędu takie jak chociażby token.. musiałem wymyślić coś innego. No i udało się po minutowym szperaniu w Google udało się trafić na stronę tPython’a gdzie opisuje on jak zabezpieczyć swoje forum phpBB by przemo przed nachalnymi i natrętnymi spam-botami.
U mnie zadziałało. Od momentu wprowadzenia modyfikacji nie zarejestrował sie ani jeden bot.

Poniżej znajduje się opis modyfikacji jaką trzeba wykonać aby zabezpieczyć forum:
Uwaga: zanim zaczniesz zmieniać pliki zrób ich kopię bezpieczeństwa.

1. Szukamy w pliku includes/usercp_register.php:

if ( ( strtolower($HTTP_POST_VARS[‘reg_key’]) != $anti_robot_row[‘reg_key’] ) || !$anti_robot_row[‘reg_key’] )

i zmieniamy na na przykład (dodajemy ‘X’):

if ( ( strtolower($HTTP_POST_VARS[‘reg_key’]) != ‘x’.$anti_robot_row[‘reg_key’] ) || !$anti_robot_row[‘reg_key’] )

2. W pliku templates//profile_add_body.tpl szukamy:

<span class="gen">{validation.VALIDATION}
<input name="reg_key" class="post" onfocus="Active(this)" onblur="NotActive(this)" maxlength="4" size="24" type="text" /></span>

i rozszerzamy pole tekstowe co najmniej o jeden znak (w tym wypadku o 4 znaki do wartości 8):

<span class="gen">{validation.VALIDATION}
<input name="reg_key" class="post" onfocus="Active(this)" onblur="NotActive(this)" maxlength="8" size="24" type="text" /></span>

3. Modyfikujemy opis, dodając instrukcję dotyczącą konieczności umieszczenia na początku dodatkowego znaku:

$lang[‘Validation_explain’] = ‘Żeby mieć pewność że nie jesteś robotem, wpisz wyświetlone cyfry.’;

na:

$lang[‘Validation_explain’] = ‘Żeby mieć pewność że nie jesteś robotem, wpisz wyświetlone cyfry. <strong>Ważne! Do kodu dołącz na samym początku literę "X"!</strong>’;

Powodzenia w modyfikowaniu swojego forum.

Zobacz także: