Sblam!

Zabezpiecza formularze przed spamem

Instalacja filtra antyspamowgo na forum phpBB

Instrukcje dotyczą phpBB2 (najnowszej stabilnej wersji 2.0.22). Wtyczka zadziała również z innymi wersjami, m.in. „phpBB modified by Przemo”.

Nie ma jeszcze instrukcji dla phpBB3 (możesz skorzystać z ogólnej instrukcji, jeśli potrafisz).

Automatyczna instalacja za pomocą dodatku EasyMOD

Dodatek EasyMOD do phpBB2 pozwala zainstalować wtyczkę (prawie) automatycznie. Jeśli go nie masz, zobacz samodzielną instalację. Aby użyć EasyMOD:

  1. Skopiuj katalog sblambb do katalogu admin/mods/ (tak, aby istniał plik admin/mods/sblambb/install.txt)
  2. Zaloguj się do panelu administracyjnego i wybierz opcję „Install MODs”, a następnie „Process” w tabelce z wtyczką sblam. Jeśli nie widzisz sblam na liście, to upewnij się, że pliki są w odpowiednim katalogu. Zobacz pomoc do EasyMOD.

Po przejściu przez proces instalacji EasyMOD musisz jeszcze umieścić swój klucz API oraz poprawić niestandarowe szablony (zobacz punkty 2 i 5-6 w samodzielnej instalacji).

Samodzielna instalacja w dowolnej wersji phpBB

  1. Umieść pliki sblam.js.php, sblamtest.php i sblamtestbb.php w katalogu głównym phpBB (tym, w którym znajdują się index.php, common.php, posting.php).

  2. Wygeneruj swoj klucz API i zanotuj go sobie. Następnie otwórz plik sblamtestbb.php i w linii:

    define("SBLAM_API_KEY",NULL);

    zamień NULL na swój klucz API w cudzysłowie. Na przykład jeśli twój klucz to ABC123abc123, to kod powinien wyglądać tak:

    define("SBLAM_API_KEY","ABC123abc123");
  3. Otwórz plik usercp_register.php z katalogu includes i znajdź w nim fragment:

    	if ( !$error ) {
    		if ( $avatar_sql == '' )

    i przed nim wklej fragment:

    // Sblam!
    require_once $phpbb_root_path . 'sblamtestbb.php';
    sblam_register_hook($error,$error_msg,$mode);
  4. Następnie otwórz functions_post.php z tego samego katalogu (includes) i znajdź w nim fragment:

    	if ($mode == 'editpost')

    (w „phpBB modified by Przemo” to będzie if ( $mode == 'editpost' && $board_config['search_enable']) wewnątrz funkcji submit_post)

    i przed nim wklej fragment:

    // Sblam!
    require_once $phpbb_root_path . 'sblamtestbb.php';
    if (sblam_posting_hook($mode, $userdata['user_id'].':'.$post_username, $bbcode_uid, $post_subject, $post_message)) return false;
  5. Otwórz plik profile_add_body.tpl z katalogu używanego przez ciebie szablonu (templates/nazwa szablonu, domyślnie templates/subSilver) i prawie na samym końcu, za zamykającym tagiem od formularza </form> wklej fragment:
    <p class="copyright sblam-footer">Protected with <a href="https://sblam.com">Sblam!</a></p>
    <script type="text/javascript" src="sblam.js.php"></script>
  6. Powyższy punkt wykonaj na pliku posting_body.tpl znajdującym się w katalogu szablonu.

    (w „phpBB modified by Przemo” należy także zmodyfikować plik quick_reply.tpl)

  7. Jeśli masz wielojęzyczne forum, to zmodyfikuj plik językowy language/lang_english/lang_main.php dodając na końcu:

    // Sblam!
    $lang['Spam_registration'] = 'Registration has been blocked by antispam filter!';
    $lang['Spam_posting'] = 'Posting has been blocked by antispam filter!';
    $lang['Spam_report'] = 'Report filter\'s mistake';
    

    i powtórz tę operację dla pozostałych języków (nie musisz przejmować się polskim — wtyczka domyślnie używa polskiego).

  8. W panelu administracyjnym wyłącz Visual Confirmation (CAPTCHA) i aktywację kont przez e-mail. Wtyczka skutecznie zastępuje CAPTCHA i automatycznie włącza aktywację tylko, gdy nie ma pewności czy rejestruje się człowiek, czy bot.

  9. W pliku phpBBroot/templates/NAZWASTYLU/index_body.tpl, tuż nad <!--End Custom Registration--!>, umieść kod JavaScript skryptu Sblam!

Jak sprawdzić, czy działa?

Używając swojego klucza API (wygenerowanego w punkcie 2 instalacji) zaloguj się do statystyk konta i zobacz, czy przy­chodzą tam infor­macje o nowych postach i rejes­trac­jach. Na stronie statys­tyk znaj­dziesz również ostrzeżenia o ewen­tual­nych niepra­widło­wościach w instalacji.

Nie próbuj wysyłać sobie spamowatych postów! Jeśli przekonasz Sblam!, że jesteś spamerem, to zostaniesz potraktowany jak spamer ze wszystkimi tego konsekwencjami!

Co i jak jest filtrowane?

Wtyczka filtruje wszystkie posty i rejestracje. Filtrowanie postów jest bardzo skuteczne. Na tyle skuteczne, że możesz nawet dopuścić wysyłanie postów przez niezalogowanych użytkowników.

Natomiast próby rejestracji na wszelki wypadek nie są pilnie strzeżone. Ilość danych podawanych podczas rejestracji jest niewielka i nie zawsze pozwala z dużą pewnością odróżnić bota od człowieka. W przypadku wątpliwości Sblam! pozwoli zarejestrować konto pod warunkiem aktywacji przez e-mail. Nawet jeśli bot w ten sposób zdoła się zarejestrować, to i tak wszystkie jego posty później będą filtrowane.

Może znajdzie się ktoś chętny do ulepszenia wtyczki tak, żeby śledziła reputację postujących i kasowała konta upartym spamerom?