Na wstępie zaznaczę, iż jestem przeciwnikiem phpBB (lista zarzutów jest na tyle długa, a ja na tyle leniwy, że nie przytoczę ich tutaj), a tym bardziej modyfikacji by Przemo. Ale cóż…

Niedawno na jednym forum zauważyłem sporo kont utworzonych przez body (linki stron WWW kierowały głównie do pornografii). Forum stworzone na bazie Przemo phpBB i zabezpieczone mechanizmem CAPTCHA. Zabezpieczenie okazało się zbyt słabe.

Jest kilka możliwości wzmocnienia mechanizmu autentyfikacji. Można na przykład poprocić użytkownika przy rejestracji aby wpisał w dane pole konkretne słowo, a następnie sprawdzić jego poprawność. Jeszcze lepiej wykorzystać zamiast stałego słowa prostej operacji matematycznej czy podobnych rozwiązań.

W blogu http://psavel.jogger.pl/2007/01/22/phpbb-vs-spamboty/ pojaw iła się metoda opierająca się na lekkiej modyfikacji CAPTCHA. W skrócie polega to na tym, aby użytkownik przed (lub po) literami captcha wpisał inny, odgórnie ustalony i podany w instrukcji znak. Autor podał dokładną instrukcję krok po kroku jakie zmiany należy wprowadzić do skryptów phpbb.

Okazuje się jednak, iż modyfikacja przemo używa innego mechanizmu captcha. Oto lista zmian, które należy dokonać:

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>’;

To chyba tyle. Jak na razie działa.

Dodaj do:
  • del.icio.us
  • Digg
  • StumbleUpon
  • LinuxNewsPL
  • Gwar
  • Wykop

15 odpowiedzi na “Przemo phpBB vs spambot”

  1. Chimera napisał:

    X to pomysl, mozna takze poprosic uzytkownika aby napisal wszystko wspak.

  2. tPython napisał:

    Dzięki za komentarz. To też jest pomysł, zresztą jak każda inna metoda opierająca się na interakcji z użytkownikiem.
    Widziałem ostatnio kilka ciekawych odmian captcha, być może wkrótce opisze zasadę ich działania.

  3. rafał napisał:

    Hm. Zrobiłem dokłądnie tak jak opisałeś - i niestety nie działa. Cały czas pisze że podano zły kod. Gdzie może tkwić problem?

  4. tPython napisał:

    Mój błąd, przepraszam.
    Oczywiście w pliku includes/usercp_register.php należy dodać ‘x’ a nie ‘X’.
    Poprawiłem.

  5. grabarz napisał:

    Na jakim pliku realizujemy punkt 3?

  6. tPython napisał:

    W pliku językowym. Na przykład: language/lang_polish/lang_profile.php

  7. grabarz napisał:

    Dzięki za pomoc. Art jest super. Boty zniknęły momentalnie. Pozdrawiam

  8. Karol napisał:

    a ja mam też taki problem że mi w ogóle pisze że niepoprawny kod teraz boty sie nie rejestrują ale nikt nowy też nie

  9. tPython napisał:

    Najwyraźniej coś źle zrobiłeś, albo korzystasz z innej wersji Przemo phpbb.

  10. Karol napisał:

    phpBB by Przemo wersja 1.12.5 to jest wersja z której korzystam

  11. Karol napisał:

    poradziłem sobie zamiast ‘x’ zastsowałem “x” pozdro

  12. ? napisał:

    a ja wogole wlaczyc te przepisywanie z obrazka przy rejestracji?

  13. ? napisał:

    a jak wole wlaczyc te przepisywanie z obrazka przy rejestracji?

  14. Demonical Monk napisał:

    Re: ‘a jak wole wlaczyc te przepisywanie z obrazka przy rejestracji?’
    Panel Administracyjny -> Ogólne -> Konfiguracja -> Profilu -> Uwierzytelnianie: TAK

  15. FS napisał:

    witam to wkońu jak z tym należy dodać ‘x’ a nie ‘X’. bo mi też nie działa :(

Pozostaw odpowiedź

Musisz być zalogowany, by móc komentować. Zaloguj się »