Halucynacje Antispam Bee

Uważni czytelnicy mogą pamiętać, że na blogu stosuję kilka metod zwalczania spamu w komentarzach. W kolejności od najbardziej ręcznych do najbardziej automatycznych będą to: ręczna moderacja, wtyczka Antispam Bee, hCaptcha oraz wycinanie IP znanych z nadużyć na poziomie iptables. Dziś będzie o wtyczce.

Wtyczka Antispam Bee radziła sobie nieźle. Wśród sporej ilości opcji, dotyczących tego jak rozpoznawać spam i co z nim dalej robić, posiada ona też możliwość generowania statystyk blokad spamu widocznych w dashboardzie WordPressa. Oczywiście korzystam, bo dzięki temu czytelnemu zestawieniu widzę, co w spamie piszczy bez konieczności wchodzenia w komentarze.

Do tej pory wyglądało to tak, że zerkałem na statystyki na wykresie, jeśli pojawiał się wzrost, to wchodziłem w komentarze i patrzyłem na IP z którego przyszedł spam i ogólnie zastanawiałem się, czy może trzeba coś ulepszyć. Oczywiście jeśli miałem wenę, bo blokady przez iptables, captchę czy wtyczkę Antispam Bee są totalnie bezobsługowe. Znaczy normalnie nie muszę w ogóle dotykać spamu, jedyne co robię, to zatwierdzam prawdziwe komentarze[1]. No i było tak, że jak wtyczka zgłosiła 2 zablokowane, to te 2 były w spamie w komentarzach. W każdym razie tak mi się wydawało – nie zauważyłem rozbieżności.

Problem

Po niedawnych zmianach w blokadach IP na poziomie iptables, ilość blokowanych spamów była stabilna i rekordowo niska – 1-2 próby dziennie. Jednak w pewnym momencie zobaczyłem coś takiego:

Statysytki Antispam Bee 22.03 – 06.05

Wzrost zaczął się 22 kwietnia i jest całkiem spory. Największa ilość widoczna na wykresie to 15 spamów. Postanowiłem poszukać, cóż to za IP i… spotkała mnie niespodzianka. Ostatni spam widoczny w komentarzach jest właśnie z 22 kwietnia. Po tej dacie nie mam żadnego komentarza uznanego za spam w bazie. A wtyczka Antispam Bee radośnie zgłasza.

Szukałem bezpośrednio w bazie, ale nie udało mi się znaleźć ani komentarzy uznanych za spam, ani miejsca przechowywania statystyk. Ostatecznie w ramach testu wyłączyłem wtyczkę na kilka dni i… przyszedł jeden spam do ręcznej moderacji. Przez kilka dni.

Rozwiązanie

Zastanawiałem się, co tu się stało i… chyba znalazłem rozwiązanie. Wszystko wskazuje na to, że wtyczka Antispam Bee jednak nie pozazdrościła AI i nie halucynuje. Ani nie próbuje pokazać, jaka jest przydatna uciekając się do przedstawiania fałszywych wartości. Chodzi o kolejność działania blokad. Antispam Bee działa przed czy też obok hCaptcha. Komenatrz, aby trafił do bazy WordPressa, musi mieć poprawnie rozwiązaną captchę. Jej brak nie przeszkadza jednak Antispam Bee w rozpoznaniu spamu i uwzględnieniu go w statystykach. Czyli ten wzrost to faktycznie próby wysyłki spamu z IP, które nie są na listach, ale nieudolne, nie uwzględniające tego, że na blogu jest captcha.

Wygląda, że trzeba się będzie przeprosić z wierszem poleceń przy wyszukiwaniu IP do blokowania, przynajmniej chwilowo. Stosowne polecenie:

egrep "POST.*wp-comments-post.php" access.log | grep " 400 " | awk '{print $1}' | sort | uniq -c | sort -n

Wtyczkę Antispam Bee polecam nadal. Jeśli ktoś jest ciekaw, czemu nie korzystam z Akismet, to odpowiedź znajdzie w tym wpisie.

[1] Tak się teraz zastanawiam, że działa to tak dobrze, że w zasadzie mógłbym wyłączyć moderację w ogóle. Z drugiej strony już przywykłem, a komentarzy nie ma zbyt wiele, więc żaden problem.

Ahrefs.com – porządki na blogu

Jakiś czas temu założyłem konto w serwisie ahrefs.com. Jest to porządnie wyglądający serwis służący SEO. Zależało mi na site audit, w szczególności na sprawdzeniu błędów linkowania. Mogłem co prawda użyć narzędzia w stylu linkchecker, ale jakoś i więcej opcji, i prostsze w użyciu. Poza tym, ahrefs.com daje narzędzia do śledzenia słów kluczowych, popularności stron itp. Stwierdziłem, że popatrzę, choć jest tego za dużo jak na moje potrzeby. Nawet w wersji darmowej.

Cieszę się, że to zrobiłem. Okazało się, że niewielka część tytułów wpisów została źle zaimportowana podczas migracji z Blox. Czyli linki w treści były po staremu, ale tytuły zostały zmienione. Chyba Blox był bardziej liberalny jeśli chodzi o znaki w tytule. A może to po prostu problem z kodowaniem pl-znaków? W każdym razie musiałem zmienić linkowanie w kilkunastu wpisach, łącznie duże kilkadziesiąt miejsc. Czasem przy okazji robiłem i inne porządki. Zdarzają się bowiem pewne zaszłości, które może niekoniecznie łatwo zauważyć, ale nie są już potrzebne. Czyli bez sensu zużywają zasoby.

Gdyby ktoś zdecydował się pójść w moje ślady, polecam wykluczyć ze skanowania strony tagów, kategorii itp. Niczego nie wnoszą, bo jedynie powielają treść z wpisów, a one służą jedynie za agregaty wpisów. Za to brak ich wykluczenia powoduje błyskawiczne zużywanie quoty. Na szczęście ahrefs.com pozwala na wykluczenie URLi ze skanowania przy pomocy wyrażenia regularnego (czyt.: regexp).

Przyznaję, że nieco się rozochociłem, więc zamierzam sprawdzić także linki wychodzące do stron zewnętrznych. A może i stary blog się załapie na porządki? Oczywiście nic nagle, raczej zabawa do kawy raz w tygodniu. Przy czym tam to już raczej w grę wchodzi zabawa z użyciem sed.

Daft Social – anti social network

Dziś dowiedziałem się o serwisie Daft Social. Przyznaję, że pomysł jest interesujący. Jest to minimalistyczne medium społecznościowe. Czy też antyspołecznościowe. Wielu rzeczy nie ma. Na przykład nie ma możliwości interakcji z treścią. Nie tylko przez innych, ale nawet sam autor nie ma możliwości ani edycji, ani usunięcia zamieszczonego wpisu. Nie ma tytułu, nie ma hashtagów. Nie ma dokładnego czasu zamieszczenia wpisu – jest tylko data. Z rzeczy które są – jest dostępny RSS.

Tworzenie wpisów czy też cała interakcja z platformą także jest minimalistyczna. Wpisy tworzymy poprzez… wysyłanie maili, a cała treść wpisu jest w jego temacie. Body maila nie ma już żadnego znaczenia. Można zamieszczać linki do stron oraz obrazki przez podanie URLi. Nadal w temacie maila.

Niestety, brakuje też security. Jeśli chodzi o zabezpieczenia, to mamy tylko losowego maila, na którego wysłanie powoduje dodanie wpisu. Czyli pojedynczy, stały sekret. Bez możliwości jego zmiany, bez 2FA. Bez możliwości przypomnienia – choć tu podanych jest parę tricków. Bez możliwości ograniczenia, z jakiego adresu email mają być przyjmowane maile.

Mimo wszystko pomysł mi się spodobał. Na tyle, że założyłem konto na Daft Social. Nie wiem jeszcze czy i jak będę korzystał. Póki co planuję wysyłać tam powiadomienia o nowych wpisach na blogu, podobne do tych, które trafiają na Blablera.