SilentShield
← Powrót do bloga
WordPressKonfiguracjaSpamContact Form 7

Captcha w WordPressie: konfiguracja i koniec ze spamem w formularzach

Marc Wagner·7 października 2026·5 min czytania

Ten poradnik prowadzi świeżą stronę WordPress z Contact Form 7 od stanu „brak ochrony” do ochrony wielowarstwowej. Wszystko przetestowano 7 października 2026 r. z SilentShield 2.15.14, Contact Form 7 6.2 i WordPress 7.1.2. Opisane tu warstwy działają na Pana własnym serwerze; opcjonalne API SilentShield opisano w poradniku WordPress.

Świeża instalacja jeszcze niczego nie chroni

Dashboard SilentShield tuż po instalacji: czerwony komunikat „No form is protected yet” informuje, że każdą wtyczkę formularzy trzeba włączyć osobno, wymienia Contact Forms 7, WordPress Comments, Password Reset, WordPress Login i WordPress Registration oraz oferuje przycisk „Choose what to protect”
Zrzut ekranu angielskiego interfejsu administracyjnego (SilentShield 2.15.14, WordPress 7.1.2, test z 7 października 2026 r.).

Po aktywacji wtyczka działa, ale żadna wtyczka formularzy nie jest włączona. Dashboard mówi to otwarcie: „No form is protected yet” (Żaden formularz nie jest chroniony), a następnie wymienia wtyczki formularzy, które znalazł na Pana stronie. Dopóki wtyczka formularzy nie zostanie włączona, jej formularze nie pokazują pola captcha i nic nie jest sprawdzane.

Wszystkie poniższe ustawienia znajdują się w menu SilentShield w panelu administracyjnym WordPress.

Krok 1: Wybierz metodę captcha

Strona Protection Settings: moduł captcha jest włączony, z metodami Honeypot (niewidoczna, zalecana), Math Problem i Image Captcha, polami na label i placeholder oraz wyborem szablonów wyświetlania
Zrzut ekranu angielskiego interfejsu administracyjnego (SilentShield 2.15.14, WordPress 7.1.2, test z 7 października 2026 r.).

Proszę otworzyć SilentShield → Ustawienia ochrony. Dostępne są trzy metody:

  • Honeypot (domyślna, niewidoczna). Pułapka, czyli pole poza widocznym obszarem; odwiedzający nigdy go nie widzą, a boty wypełniające każde znalezione pole – owszem. Honeypot nie jest zadaniem: bot, który czyta stronę i omija pułapkę, przechodzi.
  • Zadanie rachunkowe. Odwiedzający rozwiązuje proste działanie (dodawanie, odejmowanie lub mnożenie). Jest wyświetlane jako tekst, więc bot z prawdziwą przeglądarką może je odczytać.
  • Captcha graficzna. Zniekształcone znaki, które odwiedzający przepisuje. Wymaga biblioteki PHP GD na serwerze i jest największym wysiłkiem dla odwiedzających.

Proszę zacząć od honeypota, jeśli najważniejsza jest konwersja, a przejść na zadanie rachunkowe lub captchę graficzną, gdy spam nadal przychodzi. Proszę wybrać szablon, w razie potrzeby zmienić etykietę i kliknąć Zapisz.

Krok 2: Włącz formularze

Strona Forms: integracja Contact Forms 7 jest włączona i pokazuje etykiety „Detected” i „Fields detected”; poniżej wymieniony jest formularz „Contact form 1”, pozostałe wtyczki formularzy nie są zainstalowane
Zrzut ekranu angielskiego interfejsu administracyjnego (SilentShield 2.15.14, WordPress 7.1.2, test z 7 października 2026 r.).

Proszę otworzyć SilentShield → Formularze. Każda wtyczka formularzy ma przełącznik; etykieta obok niego pokazuje, czy wtyczka została wykryta na Pana stronie. Po włączeniu Contact Form 7 etykieta zmienia się z „Disabled” na „Fields detected”. Ten przełącznik zapisuje od razu, przycisku Zapisz tu nie ma.

Proszę kliknąć pojedynczy formularz pod integracją, jeśli potrzebuje własnych ustawień. Ustawienia obowiązują na trzech poziomach (globalnie, integracja, pojedynczy formularz), a niższy poziom nadpisuje wyższy.

Poradniki krok po kroku dla poszczególnych wtyczek formularzy: Avada Forms, Elementor Forms, WPForms oraz kasa WooCommerce.

Krok 3: Dodaj warstwy wykrywania

Strona Protection Settings, dolna część: Timer Protection wyłączona, JavaScript Detection włączona, Browser Detection włączona, Multiple Submission Protection wyłączona, Gibberish Detection włączona w trybie „Monitor only (record, do not block)” z „Flagged fields required: 3”
Zrzut ekranu angielskiego interfejsu administracyjnego (SilentShield 2.15.14, WordPress 7.1.2, test z 7 października 2026 r.).

Niżej w Ustawieniach ochrony każda warstwa ma własny przełącznik. Tak wygląda stan po świeżej instalacji:

  • Wykrywanie JavaScriptu (włączone). Blokuje zgłoszenia od klientów, którzy nie uruchomili JavaScriptu, na przykład ze skryptu wysyłającego dane bezpośrednio na adres formularza.
  • Wykrywanie przeglądarki (włączone). Sprawdza, czy żądanie zawiera prawidłowy user agent.
  • Ochrona czasowa (wyłączona). Odrzuca zgłoszenie, które dotrze szybciej niż minimalny czas po załadowaniu strony; domyślne minimum to 500 milisekund.
  • Ochrona przed wielokrotnym wysłaniem (wyłączona). Zapobiega wysłaniu tej samej sesji captcha więcej niż raz.
  • Gibberish Detection (włączone, „Monitor only”). Oznacza tekst z przypadkowych znaków, na przykład „dQgJlwEhfxaLZSKYLy”. W trybie monitorowania zapisuje, co by odrzuciła, i niczego nie blokuje. Proszę przez jakiś czas obserwować wyniki, a potem przełączyć tryb na „Block”.

Zgłoszenie jest odrzucane, gdy tylko jakakolwiek aktywna warstwa je oznaczy.

Krok 4: Limit żądań i reguły treści przeciw uporczywemu spamowi

Strona Advanced Settings: IP-based Rate Limiting i Content Rules (limit URL, BBCode, czarna lista słów), oba wyłączone, oraz czarna lista IP z przykładowymi wpisami 192.168.1.1 i 10.0.0.0/24
Zrzut ekranu angielskiego interfejsu administracyjnego (SilentShield 2.15.14, WordPress 7.1.2, test z 7 października 2026 r.).

Proszę otworzyć SilentShield → Ustawienia zaawansowane. Wszystko tu jest domyślnie wyłączone:

  • Limitowanie żądań według IP. Po 3 nieudanych próbach w ciągu 5 minut adres jest blokowany na 1 godzinę (wartości domyślne, wszystkie można zmienić). Adresy są zapisywane jako solone skróty (hashe).
  • Reguły treści. Górny limit liczby linków w wiadomości, blokada linków BBCode ([url=…]) i czarna lista słów. Czarna lista to własna lista WordPressa w „Ustawienia → Dyskusja” (po angielsku „Disallowed Comment Keys”), więc edycja w jednym lub drugim miejscu daje ten sam skutek.
  • Czarna lista IP. Adresy, które mają być zawsze blokowane, jeden w wierszu.

Krok 5: Test jako odwiedzający, nie jako administrator

Contact Form 7 po błędnej odpowiedzi na captchę: formularz pokazuje wpisane wartości oraz wyróżnione pole komunikatu z tekstem „Captcha check”
Zrzut ekranu angielskiego interfejsu administracyjnego (SilentShield 2.15.14, WordPress 7.1.2, test z 7 października 2026 r.).

Administratorzy i zalogowani użytkownicy domyślnie pomijają wszystkie kontrole (biała lista na tej samej stronie). Test podczas logowania niczego więc nie dowodzi. Proszę zamiast tego otworzyć formularz w prywatnym oknie przeglądarki:

  1. Proszę wysłać formularz z błędną odpowiedzią na captchę. Zgłoszenie musi zostać zablokowane; Contact Form 7 pokazuje powód w swoim polu komunikatu, tu „Captcha check”.
  2. Proszę ponownie załadować formularz i wysłać go z poprawną odpowiedzią. Musi przejść.

Które ustawienie zatrzymuje jaki spam

  • Skrypty wysyłające bezpośrednio, bez przeglądarki: wykrywanie JavaScriptu i wykrywanie przeglądarki.
  • Boty wypełniające każde pole: honeypot.
  • Skrypty, które wypełniają i wysyłają formularz w ciągu milisekund: ochrona czasowa.
  • Tekst-wypełniacz z przypadkowych znaków: Gibberish Detection.
  • Spam z linkami: limit linków, blokada BBCode i czarna lista słów.
  • Ten sam adres próbujący raz za razem: limitowanie żądań według IP.

Ograniczenia

  • Żadne ustawienie nie zatrzyma spamu wpisywanego ręcznie przez człowieka.
  • Boty z prawdziwą przeglądarką mogą przejść kontrole po stronie przeglądarki. Reguły treści i Gibberish Detection patrzą natomiast na wpisany tekst; w tym przypadku odpowiednią warstwą jest analiza zachowania.
  • Bez JavaScriptu w przeglądarce zgłoszenie do chronionego formularza jest odrzucane.

Poradnik ochrony formularzy

Gotowy porzucić CAPTCHA?

Ochrona Państwa formularzy — niewidocznie. Bez karty kredytowej.