Spam z formularza kontaktowego: ochrona bez irytowania klientów

Spam z formularza kontaktowego: ochrona bez irytowania klientów

Spam z formularza kontaktowego najskuteczniej zatrzymasz kilkoma niewidocznymi warstwami: polem honeypot, kontrolą czasu wypełnienia i filtrem treści. Captcha? Na sam koniec, jako ostatnia linia obrony. Przy takim układzie boty odpadają, zanim klient w ogóle zauważy, że ktoś go sprawdza. Skrzynkę zalewają ci oferty pozycjonowania, a odkąd dodałeś obrazkową zagadkę, klienci dzwonią z tekstem “nie mogę wysłać wiadomości”? No właśnie, ten poradnik jest dla ciebie. Każdą metodę oceniamy pod trzema kątami: czy działa w praktyce, ile wysiłku kosztuje użytkownika i czy nie odcina osób z niepełnosprawnościami.

Skąd bierze się spam z formularza kontaktowego?

Większość tego śmiecia wysyłają automatyczne boty, które przeczesują sieć w poszukiwaniu otwartych formularzy. Człowiek ręcznie wklejający reklamę? Zdarza się, ale dużo rzadziej. Najczęściej dostajesz:

  • linki SEO wklejane w nadziei na darmowy odnośnik,
  • phishing udający bank, kuriera albo rejestratora domeny,
  • oferty usług, od pozycjonowania po “gorące leady”,
  • próby wstrzyknięcia kodu, czyli sprawdzanie, czy formularz przepuści skrypt albo zapytanie do bazy danych.

Popularne wtyczki i domyślne adresy formularzy tylko botom pomagają. Jeden znany układ pól i można jechać po ogromnej liczbie stron. Aha, boty nie są sobie równe. Te proste strzelają żądaniem prosto w serwer, w ogóle nie ładując strony. Zaawansowane odpalają prawdziwą przeglądarkę i wykonują JavaScript. I od tego zależy, która ochrona w ogóle zadziała.

Dlaczego captcha zniechęca klientów?

Klasyczna captcha zrzuca weryfikację na człowieka, więc każdy trudniejszy test to ryzyko, że klient po prostu zamknie kartę. Najbardziej obrywają osoby niewidome, osoby z dysleksją i wszyscy, którzy korzystają z czytnika ekranu albo obsługują stronę samą klawiaturą. Dla nich zagadka obrazkowa bywa ścianą. A wersja dźwiękowa? Często nie da się jej zrozumieć. Dlatego dostępność captchy wychodzi przy każdym audycie, a strony zgodne z WCAG muszą dawać inny sposób weryfikacji albo kontaktu.

Kłopoty są też na telefonach z małym ekranem, przy blokerach skryptów i w trybie prywatnym, gdzie test potrafi się zapętlić w nieskończoność. No i reCAPTCHA wysyła dane o odwiedzającym do Google, więc polityka prywatności musi to uwzględniać.

Niewidoczne metody ochrony formularza przed botami

Najlepsza ochrona formularza przed botami działa w tle i niczego od klienta nie chce. Sprawdzone warstwy:

  • honeypot w formularzu, czyli ukryte pole, które wypełni tylko bot,
  • minimalny czas wypełnienia: jeśli wiadomość poszła szybciej, niż człowiek zdążyłby przeczytać pola, leci do kosza,
  • jednorazowy token generowany przez JavaScript, którego bot bez przeglądarki nie zdobędzie,
  • limit wysyłek z jednego adresu IP w określonym czasie.

Pole-pułapkę trzeba schować tak, żeby nie myliło czytników ekranu. Kontener dostaje aria-hidden=”true”, a samo pole tabindex=”-1″ i autocomplete=”off” (inaczej przeglądarka potrafi je sama uzupełnić i prawdziwy klient wyląduje w spamie). Tylko że zaawansowany bot jedną warstwę obejdzie bez problemu. Dlatego metody zawsze się łączy.

reCAPTCHA i alternatywy: kiedy weryfikacja ma sens

Jeśli niewidoczne metody nie dają rady, sięgnij po weryfikację bez zagadek, na przykład reCAPTCHA v3 albo Cloudflare Turnstile. Wersja v2 pokazuje pole wyboru, a gdy ma wątpliwości, wyskakują obrazki do klikania. Wersja v3 ocenia ryzyko w tle i zwraca wynik, a ty decydujesz, co zrobić ze zgłoszeniem. Turnstile sprawdza przeglądarkę bez obrazków i mniej śledzi użytkownika.

Inne alternatywy dla reCAPTCHA to hCaptcha, Friendly Captcha i prosta captcha tekstowa albo pytanie, które czytnik ekranu odczyta bez kombinowania. Przy wyborze patrz na trzy rzeczy: dostępność dla wszystkich odwiedzających, zakres wysyłanych danych osobowych i to, jak łatwo to wpiąć we wtyczkę, której już używasz. Moim zdaniem ta ostatnia kwestia bywa niedoceniana.

Filtrowanie treści i zabezpieczenia po stronie serwera

To, co prześlizgnie się przez formularz, da się jeszcze odsiać na serwerze, zanim wyląduje w skrzynce. Filtr słów i linków zatrzyma wiadomości naszpikowane odnośnikami. Walidacja pól odrzuci chociażby adres URL wpisany w polu “imię” (boty tak robią). Usługi antyspamowe typu Akismet porównują treść z bazą znanego spamu i oznaczają podejrzane zgłoszenia.

Formularz jest tak bezpieczny jak cała witryna. Stąd regularne utwardzanie WordPressa krok po kroku: aktualizacje, firewall aplikacyjny, blokowanie podejrzanych adresów IP. Ostatni filtr to poczta. Filtry antyspamowe i dobrze ustawione na serwerze rekordy SPF i DKIM decydują, czy prawdziwe zapytania w ogóle dotrą do adresata. Łatwiej to załatwić, gdy masz porządny hosting poczty dla firmy.

Jak zablokować spam w formularzu WordPress krok po kroku?

Zacznij od najlżejszych warstw. Kolejne dokładaj dopiero wtedy, gdy spam dalej przechodzi:

  1. honeypot i kontrola czasu wypełnienia,
  2. walidacja pól i filtr treści,
  3. niewidoczna weryfikacja, czyli Turnstile albo reCAPTCHA v3,
  4. captcha interaktywna włączana tylko przy podejrzanym ruchu.

Większość wtyczek ma część tych opcji na pokładzie. Pokazujemy je na przykładzie, w którym konfigurujemy formularz kontaktowy w WPForms. Po każdej zmianie wyślij wiadomość z telefonu, samą klawiaturą i z włączonym czytnikiem ekranu. Potem zajrzyj do folderu spam. Nie ma co zakładać, że skoro formularz pokazał “wysłano”, to wiadomość doszła.

Dobrze poukładana, warstwowa ochrona ogranicza spam z formularza kontaktowego i nie karze przy tym prawdziwych klientów. Najprościej, gdy strony firmowe na WordPressie od początku projektuje się z myślą o bezpieczeństwie i dostępności.

Najczęstsze pytania

Czy sam honeypot wystarczy do zablokowania spamu?

Na proste boty zwykle tak, bo wypełniają każde pole, jakie znajdą w kodzie. Zaawansowane rozpoznają ukryte pola i je omijają. Wtedy dołóż kontrolę czasu wypełnienia i filtr treści.

Czy reCAPTCHA v3 jest widoczna dla użytkownika?

Nie. Działa w tle i nie pokazuje żadnych zagadek. Trzeba jednak ustawić próg oceny i przemyśleć przypadki graniczne, na przykład dodatkową weryfikację zamiast odrzucania wiadomości. I pamiętaj, że dane o odwiedzającym idą przy tym do Google.

Jak sprawdzić, czy captcha nie blokuje klientów?

Przetestuj formularz z czytnikiem ekranu, samą klawiaturą i na telefonie. Po wdrożeniu obserwuj, czy nie spadła liczba zapytań od prawdziwych klientów. I zostaw inną drogę kontaktu: widoczny adres e-mail i numer telefonu.

Zarezerwuj darmową konsultację

Zostaw numer telefonu lub umów spotkanie.