Jak zatrzymać spam w formularzu kontaktowym bez CAPTCHA?
Autor: Eureka Studio · Zaktualizowano
Krótka odpowiedź
Zamiast CAPTCHA połącz niewidoczne testy: ukryte pole-pułapkę (honeypot), które wypełniają tylko boty, minimalny czas wypełniania, token odporny na pamięć podręczną stron oraz limity na IP i na e-mail. Wiadomości na granicy przenoś do kwarantanny zamiast je usuwać. Lokalna wtyczka może to robić dla Elementora, Contact Form 7 i WPForms bez wysyłania danych gdziekolwiek. W Hushfort ochrona wtyczek formularzy należy do Pro; darmowa wtyczka obejmuje tylko komentarze i opinie.
Kroki
1Krok 1
Zobacz, jak boty atakują Twój formularz
Boty wypełniają każde znalezione pole, także ukryte, którego człowiek nigdy nie widzi, albo wysyłają formularz w ogóle bez ładowania strony. Dziennik Hushfort nazywa każdy przypadek: wypełnione pole-pułapka, brak tokenu, wypełnione zbyt szybko, zbyt wiele linków.
2Krok 2
Włącz Tarczę antyspamową w trybie monitorowania
W Hushfort otwórz Tarczę antyspamową, włącz ją i ustaw Tryb na „Tylko zapisuj — tryb monitorowania, niczego nie blokuje”. Jeśli masz zainstalowany Hushfort Pro, pozostaw włączone Wtyczki formularzy i zapisz. Tarcza zapisuje, co by zablokowała, ale jeszcze niczego nie blokuje.

3Krok 3
Ustaw ciche limity (Pro)
Ustaw krótki Minimalny czas wypełniania (3 sekundy). W Pro ogranicz też, ile wiadomości na godzinę może wysłać jeden IP (Limit na IP) lub jeden adres e-mail (Limit na e-mail). Wiadomości z większą liczbą linków niż Maksymalna liczba linków trafiają do kwarantanny.
4Krok 4
Przejrzyj dziennik, potem przełącz na Blokuj
Po kilku dniach zobacz, co wyłapał tryb monitorowania. Jeśli nie ma tam prawdziwych wiadomości, ustaw Tryb na „Blokuj (zalecane)” i zapisz.

5Krok 5
Prawdziwi ludzie po prostu wysyłają
Odwiedzający pisze przez pół minuty, nigdy nie widzi ukrytego pola i wysyła. Żadnych łamigłówek, żadnych siatek obrazków.

Dlaczego to ważne
Spam w formularzach jest głównie uciążliwy — do czasu. Zasypuje prawdziwe zapytania, uczy Cię pobieżnie przeglądać skrzynkę i może obniżyć reputację nadawczą Twojego serwera poczty, jeśli formularz wysyła automatyczne odpowiedzi. Na ruchliwych witrynach zjada też czas serwera, bo każde zgłoszenie przechodzi pełne przetwarzanie przez wtyczkę formularzy.
Typowe rozwiązanie, CAPTCHA, przerzuca koszt na odwiedzających. Rozwiązują łamigłówki, część rezygnuje, a osoby korzystające z narzędzi chroniących prywatność utykają. Większość usług CAPTCHA ładuje też kod podmiotów trzecich i wysyła dane odwiedzających poza Twój serwer.
Jest cichszy sposób. Boty zachowują się inaczej niż ludzie, a te różnice można sprawdzić po cichu:
- Wypełniają ukryte pola. Pole-pułapka (honeypot) to pole ukryte przed ludźmi, ale widoczne w HTML-u. Człowiek zostawia je puste; bot je wypełnia.
- Są szybkie. Człowiek potrzebuje kilku sekund na wypełnienie formularza. Bot potrzebuje milisekund.
- Powtarzają się. Jeden IP lub jeden adres e-mail wysyłający dziesięć wiadomości na godzinę to nie klient.
- Wklejają linki. Wiadomość z masą linków rzadko jest prawdziwym zapytaniem.
Typowe błędy
- Blokowanie zamiast kwarantanny. Gdy test nie ma pewności, zachowaj wiadomość do przejrzenia. Usunięcie pytania prawdziwego klienta jest gorsze niż przeczytanie jednego spamu.
- Od razu tryb Blokuj. Zacznij od kilku dni w trybie samego zapisywania. Sprawdź, co zostałoby zablokowane, zanim pozwolisz blokować.
- Tokeny, które psują się przez pamięć podręczną. Jeśli token antyspamowy jest częścią strony z pamięci podręcznej, wszyscy odwiedzający dzielą jeden przeterminowany token. Używaj ochrony, która pobiera token przy ładowaniu strony.
- Tylko jeden test. Samo pole-pułapka zatrzymuje proste boty. Dodaj test czasu wypełniania i limity.
Bez wtyczki
Większość wtyczek formularzy ma wbudowaną podstawową wersję takiej ochrony:
- Formularze Elementor Pro: dodaj pole „Honeypot” z listy pól.
- Contact Form 7: dodaj honeypot za pomocą dodatku; CF7 obsługuje też Akismet, jeśli akceptujesz wysyłanie danych do tej usługi.
- WPForms: ma wbudowany token antyspamowy i opcjonalny honeypot w ustawieniach każdego formularza.
Prosty honeypot możesz też dodać ręcznie do dowolnego formularza, nad którym masz kontrolę:
<div style="position:absolute;left:-9999px" aria-hidden="true">
<label>Leave this empty <input type="text" name="website" tabindex="-1" autocomplete="off"></label>
</div>
<?php
if ( ! empty( $_POST['website'] ) ) {
wp_die( 'Spam detected.', 403 );
}
Ograniczenia: każda wtyczka formularzy robi to inaczej, zwykle nie ma wspólnego limitu dla wszystkich formularzy, nie ma kwarantanny, która wyłapie pomyłki, ani niczego dla komentarzy czy opinii. W efekcie konfigurujesz ten sam pomysł pięć razy.
Jeśli coś pójdzie nie tak
- Przestały przychodzić prawdziwe wiadomości. Przełącz Tarczę antyspamową w tryb monitorowania, wyślij testową wiadomość i sprawdź w dzienniku, który test ją zatrzymał.
- Formularze nie działają tylko u niektórych odwiedzających. Po włączeniu ochrony raz wyczyść pamięć podręczną stron.
- Spam nadal się przedostaje. Obniż limit linków, dodaj słowa lub domeny do listy blokowanych albo włącz tryb ścisły dla formularzy, które powinny przyjmować tylko znanych dostawców poczty.
Z Hushfort
Tarcza antyspamowa chroni komentarze i opinie WooCommerce już w Hushfort Security, darmowej wtyczce bezpieczeństwa WordPress. Wtyczki formularzy wymagają Hushfort Pro, który dodaje do tego samego ekranu sześć popularnych (Elementor Pro, Contact Form 7, WPForms, Gravity Forms, Fluent Forms, Forminator).
- Niewidoczne pole-pułapka, minimalny czas wypełniania i podpisane tokeny odporne na pamięć podręczną stron. Token pobiera malutki skrypt o wadze około 2 KB, bez plików cookie.
- Pro: domyślne limity: na IP (5 na godzinę) i na e-mail (3 na godzinę); wiadomości z więcej niż 2 linkami trafiają do kwarantanny.
- Pro: lista około 9900 domen jednorazowych adresów e-mail, własne listy blokowanych i filtry słów.
- Pro: kwarantanna z uczeniem się przez „To nie spam”.
- Tryb monitorowania, w którym widzisz, co tarcza by zablokowała, zanim zacznie blokować.
Bez CAPTCHA, bez zewnętrznego API, a dane z formularzy nigdy nie opuszczają Twojego serwera.
Najczęstsze pytania
Czy pola-pułapki (honeypot) naprawdę zatrzymują spam w formularzach?
Dlaczego warto unikać reCAPTCHA?
Czy to działa z pamięcią podręczną stron?
Które wtyczki formularzy są obsługiwane?
Co się dzieje z wiadomością, która wygląda na spam, ale może być prawdziwa?
Powiązane poradniki
Jak wyłączyć komentarze w WordPressie lub zatrzymać spam w komentarzach?
Wyłącz komentarze w całym WordPressie albo zostaw je i zatrzymaj spam. Osobne zasady dla wpisów i opinii o produktach, bez pingbacków i bez CAPTCHA.
Zobacz krokiJak zatrzymać spamowe rejestracje użytkowników w WordPressie?
Zatrzymaj fałszywe rejestracje w WordPressie i WooCommerce: limity godzinowe, limit dla całej witryny i niewidoczne pola-pułapki, bez blokowania zamówień.
Zobacz krokiJak rozpoznać i zablokować ruch fałszywego Googlebota w WordPressie?
Boty podszywające się pod Googlebota spowalniają WordPressa. Sprawdź prawdziwe roboty po IP, zablokuj podróbki i nie blokuj przy tym zamówień.
Zobacz kroki

