Tworzysz stronę internetową i potrzebujesz pomocy?

W tym wpisie postaram się przybliżyć Wam kilka sprawdzonych (bezpośrednio przeze mnie lub moich klientów) sposobów walki ze SPAMem na stronach internetowych. Wprawdzie będę opierał się na WordPressie (zdecydowany lider, jeśli chodzi o ilość działających stron), to podobne rozwiązania są dostępne również na innych platformach, lub relatywnie prosto można je dodać do autorskich rozwiązań. Oczywiście nawet nie zamierzam opisać tu wszystkich wtyczek, które w mniejszym lub większym stopniu pozwalają wyeliminować SPAM z komentarzy, a skoncentruje się na przedstawieniu kilku przykładowych rozwiązań każdego typu (z których sam korzystam, bądź korzystałem).

WordPress i (anty)SPAM

Popularność WordPressa przekłada się również na ilość botów (automatów) próbujących zostawić na naszej stronie komentarz, który „przy okazji” będzie promował (linkował) jakiś serwis lub usługę. I w tym wpisie zajmiemy się głównie tego typu zagrożeniem.

Oczywiście zdarzają się też SPAM-komentarze pisane na naszej stronie bezpośrednio przez człowieka, to jest to dość rzadkie zjawisko, ale postaram się Wam coś podpowiedzieć również w tym kontekście.

Wykorzystaj ustawienia WordPressa

Zaczniemy od czegoś, co może wydawać się oczywiste, ale często, gdy trafia do mnie (do nas) pod opiekę jakaś strona, to okazuje się, że nawet w samych ustawieniach WordPressa można/należy wprowadzić kilka zmian, które pozwolą w jakimś stopniu zredukować ilość SPAMu.

wordpress_ustawienia_ustawienia-dyskusji01

  • Ustawienia -> Dyskusja

Mamy tu kilka opcji, którym warto się przyjrzeć.

Można wyłączyć pingbacki i trackabaki (czasem również wykorzystywane do SPAMu):

  • Zezwól innym blogom na powiadamianie o zamieszczeniu odnośnika (pingbacki i trackbacki) do nowo dodanych artykułów

Można ustawić ręczną akceptację każdego komentarza (sprawdza się przy mniejszej ilości komentarzy), czy też ręczną akceptację ograniczyć tylko do nowych komentujących:

  • Komentarze muszą zostać zatwierdzone ręcznie
  • Inny komentarz tego samego autora musi zostać wcześniej zatwierdzony

W sytuacji, gdy z serwisu korzystają tylko zarejestrowani użytkownicy, można zezwolić na komentarze tylko zalogowanym użytkownikom:

  • Użytkownicy muszą być zarejestrowani i zalogowani, aby móc komentować

Warto też rozważyć aktywacje opcji, dzięki której komentarz automatycznie trafi do moderacji w sytuacji, gdy zawiera więcej linków, niż określimy:

  • Pozostaw komentarz do moderacji, jeżeli zawiera on [X] lub więcej odnośników. (Spam często charakteryzuje się dużą ilością odnośników w treści wiadomości).

Całkowitego wyłączenia komentarzy nawet nie będę proponował, gdyż nie o to chodzi – no chyba, że mówimy np. o stronie firmowej, gdzie żadnej „interakcji” z użytkownikami nie przewidujemy, a już na pewno nie w formie komentarzy.

Przydane mogą okazać się też 2 pola, w których możemy wpisać słowa, których pojawienie się w „treści, nazwie użytkownika, jego adresie URL czy email lub adresie IP” spowoduje przeniesienie takiego komentarza do kolejki SPAM, lub do moderacji:

wordpress_ustawienia_ustawienia-dyskusji02

Jak widać – u mnie podpadł sklep „ematador”, którego ktoś próbował reklamować pominięciem fakturowania, np. za komentarz sponsorowany… ;-)

Są to też ustawienia (zwłaszcza ograniczenia w linkach, czy wybranych słowach), które dość skutecznie pozwalają odsiać całkiem sporą część SPAMu pisanego bezpośrednio przez użytkownika (zwłaszcza w połączeniu z usunięciem pola na adres strony komentującego).

Automatyczna analiza

Kolejnym sposobem walki ze SPAMem w komentarzach są wtyczki, które na podstawie analizy treści i parametrów komentarza (często jest to analiza globalna, czyli korzystamy z zebranych danych na wielu stronach) decydują czy go przepuścić, przesłać do moderacji czy oznaczyć jako SPAM.

O ile uważam, że warto jakieś rozwiązanie tego typu mieć na swojej stronie wdrożone, to z doświadczenia wiem, że nie powinno być jedynym zabezpieczeniem, gdyż zdarzają się komentarze, które są SPAMem a bez problemu przechodzą przez taką weryfikację.

Akismet

Pierwszą wtyczką (oczywiście jak wszystkie wtyczki, które tutaj opiszę – do WordPressa) realizującą zadania tego typu jest Akismet – usługa obecnie należy do Automattic, czyli twórców WordPressa.

wordpress_akismet_uzyskaj-klucz-api

Wtyczka wprawdzie występuje w wersji bezpłatnej, ale tylko do użytku niekomercyjnego (np. prywatny blog o podróżach), i z tego powodu od dawna z niej nie korzystam, choćby po to, by nie zastanawiać się, czy reklama na blogu to już zastosowanie komercyjne (wiem, kto to sprawdzi… ;-)), a wtedy trzeba już płacić – od 5 do nawet 50 $ miesięcznie:

wordpress_akismet_plany-taryfowe

Sama konfiguracja usługi właściwie sprowadza się do podania klucza API (licencja) i wybrania, czy „najbardziej podejrzane wiadomości” mają znikać, czy trafić do „folderu” SPAM:

wordpress_akismet_ustawienia01

Antispam Bee

Kolejną (i zarazem ostatnią) wtyczką tego typu, jaką chciałbym przedstawić jest Antispam Bee – wtyczka, która zagościła (i nada gości) na większości moich (lub moich klientów) stronach.

Wtyczka jest darmowa, również na stronach komercyjnych/firmowych, a skutecznością nie ustępuje – a mam wrażenie, że czasem nawet przewyższa – wtyczce/usłudze Akismet.

Ustawienia wtyczki również są proste, choć mamy tu zdecydowanie więcej opcji/możliwości niż w przypadku Akismet:

wordpress_antispam-bee_ustawienia01

CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart)

Kolejnym zabezpieczeniem (najlepiej stosować w duecie z rozwiązaniem typu Akimet lub Antispam Bee) są różnej maści kody CAPTCHA, czyli zadania stawiane przed użytkownikiem, za pomocą których ma on udowodnić, że nie jest botem (skryptem).

Typy takich zadań mogą być przeróżne – od przepisania kodu z obrazka, przez rozwiązanie prostego (lub nie) zadania matematycznego, aż po różne układanki graficzne.

Najczęściej, jeśli już na jakiejś stronie wdrażam rozwiązanie tego typu, to wybieram proste zadania matematyczne, które zazwyczaj nie stanowią wyzwania intelektualnego dla użytkownika, a zarazem są prostsze niż przepisanie jakiegoś tekstu ukrytego między „jakimiś zygzakami”.

Captcha by BestWebSoft

Przykładem wtyczki tego typu jest Captcha by BestWebSoft, dzięki której proste zadanie matematyczne możemy dodać mi.in. do formularza komentarza, czy logowania:

wordpress_captcha-by-bestwebsoft_ustawienia01

Możemy wybrać, czy ograniczamy się np. tylko do dodawania, czy też chcemy dostarczyć naszym użytkownikom trochę wyższych lotów zagadki, z wykorzystaniem odejmowania i mnożenia:

wordpress_captcha-by-bestwebsoft_ustawienia02

W równaniu mogą występować liczby zapisane tylko cyframi i/lub słownie i/lub w formie graficznej.

Honeypot, czyli lep/wabik na… SPAM

Od jakiegoś czasu stosuje wtyczki działające na zasadzie „zastawiania pułapek na boty”, których działanie zazwyczaj (w większości przypadków) dla użytkownika jest niewidoczne i nie wymaga żadnych działań (np. wpisywania kodów).

Wykorzystuje się tu pewne różnice w postrzeganiu/odbieraniu stron internetowych przez „przeciętnego użytkownika” a „przeciętnego bota”  (m.in./np. ukryte pola).

I mimo – jak się może wydawać – prostoty działania są to rozwiązania dość skuteczne, a wsparte dodatkowo rozwiązaniami typu Akismet czy Antispam Bee i prawidłową konfiguracją samego WordPressa (ustawienia dyskusji) właściwie zapewniają 100% skuteczności, przy tym nie denerwując prawdziwych/ludzkich czytelników/użytkowników strony – stąd rozwiązania tego typu często określa się jako „no CAPTCHA”.

W tym (roz)dziele standardowo opiszę 3 wtyczki, z których korzystam bądź korzystałem, wg kolejności, w jakiej pojawiały się (i znikały) na stronie Webinsider.

WPBruiser (dawniej GoodBye Captcha)

Pierwszą wtyczką tego typu, którą testowałem na większą skalę była WPBruiser – noCaptcha antiSpam(wtedy jeszcze nazywała się GoodBye Captcha). Rozwiązanie (w połączeniu z Antispam Bee) okazało się faktycznie skuteczne, że właściwie zapomniałem co to SPAM.

Z tego, co widzę, to w obecnej odsłonie (i pod nową nazwą) wtyczka znacznie się rozrosła:

wordpress_wpbruiser_ustawienia01

Pojawiły się też raporty zablokowanych komentarzy, których wcześniej nie było, i z tego powodu nasze drogi się rozeszły:

wordpress_wpbruiser_log01

WordPress Zero Spam

Szukając podobnego rozwiązania, ale jednak z jakąś opcją monitorowania zablokowanych komentarzy trafiłem na wtyczkę WordPress Zero Spam, w której znalazłem opcję „log spammers”:

wordpress_wordpress-zero-spam_ustawienia01

Wtyczka okazała się równie skuteczna, z tym że niestety szybko okazało się, że informacje na temat zablokowanych komentarzy są:

wordpress_wordpress-zero-spam_log01

Ale ograniczają się głównie do „kogo i kiedy”:

wordpress_wordpress-zero-spam_log02

Z tego powodu nasze drogi również musiały się rozejść…

PRyC WP: AntiSPAM

I tak doszliśmy do ostatniej wtyczki tego typu – PRyC WP: AntiSPAM, która pierwotnie została napisana specjalnie na potrzeby strony Webinsider.pl, i tu (choć nie tylko) była testowana przez kilka miesięcy, ostatecznie również na pozostałych stronach zastępując (wraz z Antispam Bee) inne wtyczki zabezpieczające przed SPAMem.

Konfiguracja wtyczki jest prosta, choć dla wygody/czytelności została podzielona na kilka modułów:

Ustawienia nazwy pola/klasy CSS

Tutaj ustawiamy nazwę i klasę CSS pola-pułapki (wykorzystywane m.in. do ukrywania pola), która domyślnie ustawiana jest na podstawie przekształconej nazwy szablony/motywu, z którego korzystamy na stronie.

wordpress_pryc-wp-antispam_ustawienia01

Można (wart) ustawić własną nazwę – zwłaszcza jakąś zachęcającą boty/automaty do interakcji, np. „login_url” czy „website” :-)

Opcje/ustawienia związane z komunikatem w przypadku blokady

W tej sekcji możemy ustawić jaki komunikat wyświetli się w przypadku zablokowania przez wtyczkę komentarza:

wordpress_pryc-wp-antispam_ustawienia02

Dla botów nie ma to znaczenia, ale jakby znalazł się jakiś nadgorliwy użytkownik, to możemy go za pomocą tego komunikatu naprowadzić na właściwą ścieżkę…

Opcje/ustawienia związane z wyświetlaniem pola-pułapki

Mogłoby się wydawać, że najważniejsza sekcja – to tu ustawiamy treści, jakie będą się wyświetlać przy polu-pułapce.

Wprawdzie w większości przypadków użytkownik zapewne nawet nie zobaczy tego pola, to na wszelki wypadek – jakby trafił się jakiś z wyłączoną obsługą JavaScript – warto zostawić tu jakieś wskazówki dla niego.

wordpress_pryc-wp-antispam_ustawienia03

Zdecydowanie nie zalecam zaznaczania pola „disable fake required” – nie bardzo widzę jakiś sensowny powód takiego działania, a zarazem jest duża szansa, że może to obniżyć skuteczność działania wtyczki (część botów wypełnia tylko pola oznaczone jako wymagane).

Opcje/ustawienia logowania zablokowanych komentarzy

W tej sekcji możemy ustawić czy i jak mają być zapisywane zablokowane komentarze – może to być do pliku (CSV), lub każdy „podejrzany komentarz” może być oznaczony jako SPAM, i przeniesiony do głównego modułu komentarzy.

wordpress_pryc-wp-antispam_ustawienia04

W przypadku gdy na naszej stronie pojawia się dużo SPAM-komentarzy warto rozważyć wyłączenie logowania, dzięki czemu tego typu komentarze nie będą dodatkowo obciążały serwera.

Inne opcje/ustawienia

W pozostałych ustawieniach znajdziemy… różne/pozostałe ustawienia, niekoniecznie bezpośrednio związane z samym przetwarzaniem/analizą komentarza, ale mogą się przydać:

wordpress_pryc-wp-antispam_ustawienia05

Zwłaszcza polecam zaznaczyć opcję „hide URL field”, dzięki czemu z formularza zniknie pole na wpisanie adresu strony, a tego „nie lubią” boty – bo jaki pożytek z komentarza, gdy nie można w nim „się zareklamować”… ;-)

Do tego możecie zablokować pingbacki, trackbacki, czy całą usługę XML-RPC, która często wykorzystywana jest do różnego rodzaju ataków (SPAM, DDoS), choć warto pamiętać, że z tej usługi korzysta również oficjalna aplikacja WordPress na Androida, jak i usługa JetPack.

Alternatywne (zewnętrzne) systemy komentarzy

Pewną alternatywą jest przekazanie obsługi komentarzy na naszej stronie do zewnętrznego serwisu typu Facebook czy Disqus, które mają własne sposoby na rozpoznawanie SPAMu.

Osobiście podchodzę dość sceptycznie do tego typu rozwiązań – testowałem kilkukrotnie na różnych stronach, ale ostatecznie i tak wracałem do standardowych komentarzy np. WordPressa.

Raz, że jednak lubię mieć nad pełną kontrolę, a dwa – zakładam, że prędzej czy później właściciele tych usług będą chcieli na tych usługach jakoś zarobić i np. między komentarzami pojawią mi się reklamy, czy jakieś „komentarze sponsorowane”.

(!) Zgłoś błąd na stronie
Pomogłem? To może postawisz mi wirtualną kawę?
LUTy dla D-Cinelike (DJI Mini 3 Pro, DJI Avata, OSMO Pocket) od MiniFly
Wdrożenie Omnibusa w sklepie na WooCommerce
Jak (legalnie) latać dronem w Kategorii Otwartej
Kurs "WordPress: Pierwsze kroki" (bezpłatna lekcja)
Patryk
Tworzysz stronę internetową i potrzebujesz pomocy?