Sblam Spam

Ostatnia zmiana 29.07.2007 – wersja 0.9, wymaga PHP5 (paczka zawiera skrypt kliencki Sblam! wersja 1.3) – pobierz archiwum zip lub tgz.

Uwaga!

  • Jeżeli aktualizujesz wtyczkę z wersji starszej niż 0.7, usuń w pliku szablonu comments.php odwołanie do pliku sblam.js.php.
  • Jeżeli aktualizujesz wtyczkę z wersji starszej niż 0.8 i używałeś konta API, otwórz plik wtyczki sblam.wp.php, skopiuj swój klucz API i po instalacji wklej w ustawieniach w panelu administracyjnym.

Dziś światło dzienne ujrzał, stworzony przez Kornela Leśnińskego, nowy filtr antyspamowy do formularzy na stronach WWW: Sblam!. Więcej informacji o sposobie jego działania znajdziecie na stronie domowej filtru. Tutaj natomiast krótkie info jak go zaaplikować w system blogowy WordPress w postaci pluginu.

Działanie

W pierwszej kolejności uwzględniane są ustawienia WordPress odnośnie komentarzy (ilość linków, moderacja wszystkich, zakazane słowa). Dopiero po pomyślnym przejściu przez wbudowany system (komentarz nie jest oznaczony jako spam lub do moderacji) jest przekazywany do filtru antyspamowego, który poddaje go czterostopniowej ocenie. Jeżeli jest to pewny spam, zostanie oznaczony jako spam (do WP istnieje wtyczka, przy pomocy której można przeglądać/usuwać komentarze oznaczone jako spam: Spam Viewer). Jeżeli istnieje podejrzenie, że komenatrz jest spamem, zostanie on przesunięty do moderacji. W każdym innym przypadku komentarz zostanie dodany (100% czysty lub prawdopodobnie czysty).

W przypadku wystąpienia błędu podczas sprawdzania komentarza przez filtr, na adres email administratora instalacji WP zostanie wysłana informacja z jego treścią. Co się dzieje w takim przypadku z komentarzem? W opcjach wtyczki (Panel administracyjny – Opcje – Sblam Spam) możemy ustalić czy komentarz zostanie dodany, czy też wyląduje w poczekalni (default).

Trackbacki/pingbacki obecnie przenoszone są do moderacji, aczkolwiek można zmienić w opcjach, aby były dodawane bezpośrednio do listy komentarzy (filtr jak na razie nie jest przystosowany do ich sprawdzania).

Instalacja

  1. Pobieramy plugin wraz klientem Sblam! (zip lub tgz)
  2. Zawartość rozpakowujemy do katalogu z pluginami WP (wp-content/plugins)
  3. Aktywuj plugin w panelu administracyjnym
  4. Podaj (lub wygeneruj nowy klucz API) w opcjach (Panel administracyjny > Opcje > Sblam Spam)
  5. Opcjonalnie zainstaluj wtyczkę do podglądu i usuwania spamu z bazy danych

Test działania

Dodaj komentarz o treści: to jest test spamu
Powinien on zostać dodany do moderacji, a w obrębie komentarza pojawi się info o oczekiwaniu na sprawdzenie przez administratora bloga.

Dodatkowe funkcje

Wstaw w szablonie (np. w pliku footer.php) funkcję:

<?php sblam(); ?>

by wyświetlić ilość zablokowanego spamu.

Funkcja z argumentem true zwraca samą wartość.

ToDo

  • a może by tak całkiem usuwać pewny spam, w ogóle nie dodawać do bazy?
  • przezroczyste dla użytkownika błędy połączeń filtru z „serwerem matką”
  • informować zalogowanego użytkownika, jeżeli jego komentarz trafił do moderacji (na pierwszy rzut oka nie da się)wyprowadzono w ostatnich wersjach WP
  • sprawdzanie trackbacków/pingbacków
  • strona opcji, przeglądarka spamów, raportowanie błędnego spamu

Changelog

  • 0.9
    • kompletna przebudowa kodu – przekazywanie danych komentarza poprzez funkcje wbudowane WP (działa z pluginem OpenID i innymi co „czyszczą” tablicę $_POST)
    • funkcja sblam_count() zastąpiona sblam() (poprzednia na razie działa)
  • 0.8 ustawienia przeniesiono do PA
  • 0.7.1 brak globalnej zmiennej określającej typ komentarza przy sygnałach pingback powodował błąd filtru – dodano niezależne jej przekazywanie
  • 0.7 automatyczne załączanie kodu JavaScript wspomagającego filtr antyspamowy
  • 0.6
    • wtyczkę dostosowano do nowej wersji filtru
    • nowa funkcja sblam_count() – zwraca ilość zablokowanego spamu
    • kilka drobiazgów
  • 0.5 dodano obsługę kluczy API oraz poprawiono kilka drobiazgów
  • 0.4 każdy trackback/pingback był błędnie interpretowany przez filtr jako spam (Sblam obsługuje na razie tylko komentarze), obecnie są one wyłapywane i przekazywane do moderacji; rozróżnianie zalogowanych użytkowników
  • 0.3 dodano wychwytywanie błędów filtru
  • 0.2 uwzględnia zawartość zmiennej $approved przekazanej z WP
  • 0.1 pierwsza wersja

12 Responses to “Sblam Spam”

  • EjsI Says:

    Ogromne słowa uznania i podziękowania za wtyczkę, póki co jest niezawodna – mam nadzieję, że tak pozostanie :)

  • Robert Drózd Says:

    czy wtyczkę można stosować jednocześnie z innymi pluginami antyspamowymi, np. Akismet?

  • WaLLacE Says:

    W zasadzie nie ma przeciwwskazań. Ale nie widzę też sensu podwajania ;)
    Teoretycznie powinno to działać tak:
    – Akismet: komentarz będzie sprawdzany zawsze przez oba filtry. Jeżeli Akismet stwierdzi spam, nadpisze to co stwierdził Sblam.
    – SpamKarma2 – tutaj należy rozróżnić dwa przypadki:
    a. plugin SK2 ładowany przed Sblam: jeżeli SK2 rozpozna spam, Sblam nie będzie sprawdzał komentarza. W przeciwnym wypadku komenatrz zostanie sklasyfikowany przez Sblama.
    b. plugin Sblam ładowany przed SK2 – tak jak z Akismetem.

  • Piotr Lewandowski Says:

    Nie wiem czemu, ale wtyczka nie chce działać mi z WordPressem 2.0.7…
    Przy próbie włączenia wtyczki wyskakuje taki błąd:
    Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or ‚}’ in /home/pl/public_html/wp-content/plugins/SblamWordPress/sblam.wp.php on line 17

    Ktoś ma pojęcie o co chodzi??

  • wallace Says:

    To kwestia wersji PHP, na serwerze masz czwórkę, a plugin wymaga piątki.
    Znajdę chwilę czasu, to coś z tym zrobię.

  • Piotr Lewandowski Says:

    Na serwerze mam PHP4 i PHP5… widocznie domyślnie włączona jest czwórka… Dzieki za podpowiedź… Włączę piątkę i zobaczę co się dzieje…

  • Robert Drózd Says:

    Udało się coś z tym PHP4 wymyślić? Jeśli nie, to która najwyższa wersja działa pod 4? Mam wciąż 0.5 i co jakiś czas dostaję informacje o błędach, choć nie wiem czy to związane jest z wtyczką akurat. :)

    „Na Twojej stronie wystapil blad: Sblam: Niepoprawny rezultat otrzymany od serwera”

  • Piotr Lewandowski Says:

    Robert Drózd: Jak pisałem wyżej u mnie na serwerze są oba PeHaPy – 4 i 5 – pomogło ustawienie w .htaccess opcji, która domyślnie parsuje pliki .php za pomocą PHP5 : AddHandler application/x-httpd-php5 .php
    Może u Ciebie też da się to jakoś włączyć, jeżeli PHP4 nie daje rady…

  • Zibi Says:

    Robercie Drózd, w przyszłym tyogodniu zejdzie mi z głowy jedna ważna rzecz, to postaram się znaleźć trochę czasu i jakieś satysfakcjonujące rozwiązanie.

  • Domin Says:

    to jest spam ;)