Jak zabezpieczyć forum phpbb by przemo?
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/
<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.
This post has 2 comments
July 15th, 2008
Dzięki za cenne wskazówki :)
Mam jednak pytanie. W którym pliku trzeba wpisać instrukcję z punktu 3 ($lang[’validation_explain(…))?
August 10th, 2008
szukałeś w wymienionych plikach w poście?
Add a comment