Jak radzić sobie ze spambotami umieszczającymi niechciane odnośniki w komentarzach na stronie?

Warstwy obrony zamiast jednej wtyczki

Baner wejsciowyParallax

Jak radzić sobie ze spambotami umieszczającymi niechciane odnośniki w komentarzach na stronie?

Warstwy obrony zamiast jednej wtyczki

Autor nie posiada zdjęcia
Tomasz Piasecki
30 sierpnia 2024

Spam w komentarzach wraca do mnie regularnie w dwóch wersjach. Pierwsza to strona, na której pod każdym wpisem wisi kilkadziesiąt komentarzy z odnośnikami do kasyn, pożyczek i podejrzanych sklepów, bo moderacja została wyłączona lata temu. Druga to skrzynka właściciela zapchana powiadomieniami o komentarzach do zatwierdzenia, w której ginie jedno prawdziwe pytanie od klienta.

Oba przypadki mają to samo źródło: formularz komentarza jest publicznym punktem wejścia do naszej bazy danych, a jego wypełnienie da się zautomatyzować. Boty nie czytają treści wpisu i nie interesuje ich, czy strona ma jakikolwiek ruch — wypełniają wszystko, co znajdą.

Nie ma jednej wtyczki, która to załatwia. Działa natomiast układ kilku warstw, z których każda odsiewa część ruchu, i kilka decyzji o samym formularzu, których większość właścicieli stron nigdy nie podjęła świadomie.

Czego szukają boty i dlaczego trafiają właśnie tu

Warto zrozumieć motywację, bo od niej zależy skuteczna obrona.

Najczęstszy cel to odnośnik. Automat zostawia adres w treści komentarza albo w polu strony internetowej autora, licząc na to, że odnośnik zostanie opublikowany i przekaże wartość docelowej witrynie. Skala jest przemysłowa — jedna kampania obejmuje tysiące domen wyszukanych po charakterystycznym adresie formularza albo po sygnaturze systemu zarządzania treścią.

Drugi cel to ruch — komentarz nie musi mieć aktywnego odnośnika, wystarczy, że ktoś przeczyta nazwę domeny. Trzeci, najgroźniejszy, to zwabienie użytkownika na stronę z oszustwem lub złośliwym oprogramowaniem, gdzie nasza witryna jest tylko nośnikiem. Czwarty w ogóle nie dotyczy komentarzy: część zgłoszeń to sprawdzanie, czy formularz da się wykorzystać do zapisania kodu.

Dlatego spam pojawia się także na stronach bez żadnej widoczności w wyszukiwarce i dlatego nowa strona dostaje pierwsze zgłoszenia w ciągu kilku dni od uruchomienia. Boty nie wybierają najsłabszej strony ze zbioru — biorą wszystkie po kolei, więc argument „nikt nas nie zna, więc nas to nie dotyczy” nie ma tu zastosowania.

Czy to naprawdę szkodzi widoczności

Odpowiadam ostrożnie, bo w tym temacie krąży dużo przesady w obie strony.

Odnośniki wychodzące z naszej witryny są jej elementem. Setki opublikowanych, aktywnych odnośników do stron z branż wysokiego ryzyka to nie neutralna dekoracja — to komunikat o tym, do czego nasza witryna prowadzi ludzi i na ile jest nadzorowana. Google od lat radzi sobie z takim spamem automatycznie i w zdecydowanej większości przypadków po prostu go ignoruje, ale zaniedbanego serwisu to nie premiuje.

Realne szkody widzę zwykle w innych miejscach. Strony przeładowane spamem wyglądają na porzucone, co odbija się na zaufaniu użytkownika, a przy dużych ilościach komentarzy pogarsza czas wczytywania. Jeśli komentarze mają osobne adresy albo paginację, do indeksu trafia treść, której nikt nie planował. A w skrajnym przypadku — gdy spam jest efektem włamania, nie samego formularza — dochodzi do ostrzeżenia o niebezpiecznej witrynie, które ruch ucina natychmiast.

Dlatego traktuję to jako kwestię higieny serwisu i bezpieczeństwa, nie jako zagrożenie karą — ta perspektywa prowadzi do lepszych decyzji, bo skupia uwagę na tym, co naprawdę boli.

Ustawienia, które warto zmienić w systemie

Zanim instaluję cokolwiek dodatkowego, przechodzę ustawienia dyskusji w panelu. Zwykle jest tam kilka darmowych usprawnień.

  • Zatwierdzanie ręczne dla nowych autorów. Komentarz od osoby, która nie ma wcześniejszego zatwierdzonego wpisu, czeka w kolejce. Prosty warunek, który sam odsiewa jednorazowe automaty.
  • Limit odnośników. Komentarz z dwoma lub więcej odnośnikami idzie do kolejki albo od razu do spamu. Prawdziwi użytkownicy rzadko wklejają więcej niż jeden adres.
  • Zamykanie komentarzy po określonym czasie. Wpis z 2019 roku nie potrzebuje otwartej dyskusji. To jedna zmiana, która potrafi zdjąć większość napływu, bo boty najchętniej biorą się za stare, dawno nieodwiedzane adresy.
  • Lista zakazanych wyrażeń. Kilkadziesiąt charakterystycznych słów i fragmentów adresów z dotychczasowego spamu, wpisanych w pole zakazanych treści, kasuje powtarzalne kampanie bez udziału człowieka.
  • Usunięcie pola adresu strony z formularza. Radykalne, ale bardzo skuteczne: to pole istnieje głównie po to, by boty miały gdzie wpisać swój adres, a dla dyskusji nie wnosi nic.
  • Wyłączenie powiadomień o cudzych wpisach. Odnośniki zwrotne między blogami są dziś nadużywane niemal wyłącznie przez automaty i mało kto korzysta z nich w dobrej wierze.

Warstwy filtrujące ruch automatyczny

Powyżej ustawień systemowych układam narzędzia, które oceniają samo zgłoszenie.

Filtr oparty na wspólnej bazie zgłoszeń — najbardziej znany jest Akismet, ale istnieją też alternatywy działające lokalnie — porównuje treść, adres IP i inne cechy z tym, co zostało zgłoszone jako spam na innych stronach. To wciąż najskuteczniejsza pojedyncza warstwa, bo działa na wzorcach z całej sieci, a nie z naszej jednej witryny. Przy usługach zewnętrznych warto sprawdzić, jakie dane wychodzą poza serwer, i opisać to w polityce prywatności.

Druga warstwa to pułapki w formularzu. Ukryte pole, którego człowiek nie widzi i nie wypełnia, a automat wypełnia odruchowo. Sprawdzenie czasu między wczytaniem strony a wysłaniem formularza — wypełnienie w dwie sekundy nie jest ludzkie. Jednorazowy token w formularzu, bez którego zgłoszenie jest odrzucane, co eliminuje wysyłanie danych wprost do adresu obsługującego komentarze. Te mechanizmy są niewidoczne dla użytkownika i dlatego lubię je najbardziej.

Trzecia warstwa to limit zgłoszeń z jednego adresu IP w jednostce czasu, ustawiony na poziomie serwera. Nie rozwiązuje problemu w całości, bo duże kampanie korzystają z wielu adresów, ale zdejmuje obciążenie z bazy danych.

Zagadki dla użytkownika traktuję jako ostatnią opcję. Rozwiązywanie działań matematycznych albo klikanie w obrazki obniża liczbę prawdziwych komentarzy, utrudnia korzystanie ze strony osobom z niepełnosprawnościami i przy dzisiejszych narzędziach niekoniecznie zatrzymuje sprawniejsze automaty.

Atrybuty odnośników w treści od użytkowników

Ta warstwa nie ogranicza napływu spamu, ale ustawia jego skutki.

Odnośniki w treściach tworzonych przez użytkowników powinny mieć atrybut wskazujący ich charakter. Do komentarzy i wpisów na forach przeznaczona jest wartość informująca, że treść pochodzi od użytkownika; obok niej funkcjonuje wartość dla odnośników płatnych oraz klasyczne oznaczenie, którego Google od kilku lat nie traktuje jako sztywnej instrukcji, a jako wskazówkę.

W praktyce sprawdzam trzy rzeczy. Czy system dodaje odpowiedni atrybut automatycznie do wszystkiego, co wychodzi z komentarzy. Czy dotyczy to również adresu w polu autora i podpisu, bo tam bywa pominięty. I czy jakaś wtyczka albo motyw nie usuwa tych atrybutów przy renderowaniu — zdarza się to przy rozwiązaniach wczytujących komentarze skryptem.

Warto też wyłączyć automatyczną zamianę adresów w treści komentarza na aktywne odnośniki. Sam tekst adresu spamerowi nie daje prawie nic, a użytkownikowi w normalnej dyskusji wystarcza.

Uprzątnięcie tego, co już jest

Zabezpieczenia zatrzymują nowy napływ, ale nie kasują zaległości, a przy zaniedbanych serwisach zaległości bywają liczone w tysiącach wpisów.

Zaczynam od przejrzenia istniejących komentarzy z filtrem po charakterystycznych fragmentach adresów i słowach, które powtarzają się w spamie. Usuwam grupami, sprawdzając wyrywkowo, czy w partii nie ma prawdziwego wpisu. Potem czyszczę kolejkę oczekujących i kosz — przy dużych ilościach warto to zrobić także po stronie bazy danych, bo tabela komentarzy zostaje rozdmuchana i spowalnia stronę.

Następnie sprawdzam, czy sytuacja nie jest poważniejsza, niż wygląda. Otwieram raport problemów bezpieczeństwa w Search Console, przeglądam listę użytkowników w panelu w poszukiwaniu kont, których nikt nie zakładał, i sprawdzam, czy w treściach nie pojawiły się ukryte bloki odnośników widoczne tylko dla robotów. Spam wstawiany bezpośrednio do treści wpisów, a nie do komentarzy, to już nie problem formularza, a włamanie i wymaga innego postępowania.

Zgłaszania obcych domen do narzędzia odrzucania odnośników w tej sytuacji nie robię — dotyczy ono odnośników prowadzących do nas, nie od nas. Przy komentarzach problem jest po naszej stronie i rozwiązuje się go usunięciem treści.

Kiedy spam wraca mimo zabezpieczeń

Jeśli po wdrożeniu wszystkiego powyżej wpisy nadal się pojawiają, przyczyna jest zwykle w jednym z trzech miejsc.

Pierwsze: zgłoszenia nie idą przez formularz. Automat wysyła dane wprost do adresu przyjmującego komentarze albo korzysta z interfejsu programistycznego systemu, omijając wszystkie pułapki umieszczone w formularzu. Widać to w logach serwera — żądania bez wcześniejszego wczytania strony wpisu. Rozwiązaniem jest wymuszenie tokenu po stronie serwera i zablokowanie nieużywanych punktów wejścia.

Drugie: spam jest wpisywany ręcznie. Istnieje rynek tanich usług polegających na tym, że człowiek publikuje komentarze na dziesiątkach stron. Żaden filtr techniczny tego nie zatrzyma, bo zachowanie jest ludzkie. Zostaje moderacja i lista zakazanych wyrażeń.

Trzecie: dziura w innym miejscu. Nieaktualne wtyczki i motywy są najczęstszą drogą wejścia, a spam bywa pierwszym widocznym objawem czegoś, co dzieje się od tygodni.

Na koniec praktyczna rada dotycząca utrzymania: wpisuję do kalendarza przegląd kolejki komentarzy raz na dwa tygodnie i przegląd aktualizacji raz w miesiącu. Spam nie jest problemem, który rozwiązuje się raz — jest kosztem utrzymania otwartej dyskusji na stronie. Jeśli nikt w firmie nie ma na to czasu, uczciwszą decyzją jest zamknięcie komentarzy niż utrzymywanie sekcji, której nikt nie pilnuje.

Podziel się tym artykułem z innymi!

Twitter Facebook Linke.din
Autor nie posiada zdjęcia
Tomasz Piasecki
Specjalista Google Ads / SEM
Zajmuję się kampaniami Google Ads i widocznością stron w wyszukiwarce. Na blogu UDI Group piszę o tym, jak ustawienia kampanii i decyzje techniczne przekładają się na realne wyniki. Staram się tłumaczyć mechanizmy, a nie tylko podawać gotowe przepisy.