Jak zablokować spam formularzy PrestaShop: CAPTCHA i boty

Aktywna CAPTCHA nie zatrzyma bota, który wysyła zgłoszenie prosto do kontrolera. Chroń każdy formularz na serwerze, ustaw limity i czytaj odmowy.

Comment bloquer le spam des formulaires PrestaShop : CAPTCHA et bots

Formularz kontaktowy co noc otrzymuje identyczne wiadomości, po angielsku, z linkiem. Rejestracje tworzą konta na nieprawdopodobne adresy, a newsletter zbiera adresy, które nigdy o nic nie prosiły. CAPTCHA jest jednak aktywna. Najczęściej chroni tylko wyświetlanie formularza: bot, który wysyła żądanie POST bezpośrednio do kontrolera, nigdy jej nie ładuje. Ten poradnik pokazuje, jak przenieść kontrolę na serwer, które formularze chronić, jak ustawić moduł bez utraty klientów i jak czytać to, co zostało odrzucone.

Dlaczego spam przechodzi, mimo że CAPTCHA jest aktywna?

Ponieważ CAPTCHA chroni wyświetlanie formularza, a nie jego przetwarzanie. Bot, który zna adres kontrolera, wysyła oczekiwane pola bezpośrednio do serwera, bez przeglądarki i bez widżetu.

Kontrolery kontaktu, rejestracji i newslettera są publiczne i łatwe do rozpoznania. Wystarczy poprawnie zbudowane żądanie POST: widżet nigdy się nie ładuje, token dostawcy nie jest pobierany, a wiadomość trafia do skrzynki. Dlatego sklepy nadal dostają spam, choć reCAPTCHA jest włączona.

Które formularze chroni moduł?

Moduł Antyspam formularzy: CAPTCHA i blokada botów chroni siedem natywnych formularzy PrestaShop: kontakt, tworzenie konta, logowanie, formularz klienta przy zamówieniu, zapomniane hasło, subskrypcję newslettera i opinie o produktach.

Po instalacji te siedem formularzy przechodzą w tryb Chroniony, bez zewnętrznej CAPTCHA. Strona Formularze pokazuje ich tryb, CAPTCHA, minimalny czas, limity, datę ostatniego zgłoszenia i stan Pola na stronie. Przycisk Edytuj otwiera ustawienia formularza; Chroń wszystko i Obserwuj wszystko zmieniają tryb całej listy.

Dla formularzy innych modułów są dwa rozwiązania. Reguła wskazuje kontroler, pole oznaczające zgłoszenie i oczekiwany format odpowiedzi; przycisk Dodaj regułę tworzy ją, do 20 reguł na sklep. Gotowa reguła obejmuje Powiadomienia o dostępności produktów (ps_emailalerts). Udokumentowane API PHP pozwala modułowi wywołać kontrole z własnego kodu.

Samo zamówienie nigdy nie jest filtrowane: ani koszyk, ani płatność, ani potwierdzenie, ani adresy. Strona tożsamości i etap resetowania hasła też nie są chronione.

Dla kogo jest ten moduł

  • Dla sklepu, który dostaje spam na kontakcie, rejestracji lub newsletterze, mimo zainstalowanej CAPTCHA.
  • Dla sklepu, który chce widzieć, co i dlaczego zostało odrzucone, zamiast odkrywać szkody w skrzynce.
  • Dla agencji prowadzącej kilka sklepów, która chce ustawić ochronę osobno w każdym z nich.

Dla kogo nie jest

  • Dla sklepu bez wystawionego formularza: nie byłoby czego chronić.
  • Dla sprzedawcy szukającego zapory aplikacyjnej lub ochrony przed atakami odmowy usługi: to nie jest rola tego modułu.
  • Dla sprzedawcy oczekującego zera spamu: żaden moduł tego nie obiecuje, a człowiek może poprawnie wypełnić formularz.
Strona Formularze: każdy natywny formularz lub reguła pokazuje tryb, CAPTCHA, minimalny czas i limity.
Strona Formularze: każdy natywny formularz lub reguła pokazuje tryb, CAPTCHA, minimalny czas i limity.

Jak zainstalować i ustawić ochronę krok po kroku?

Zainstaluj moduł, aktywuj licencję, zostaw najpierw wszystkie formularze w obserwacji, a po przeczytaniu dziennika włącz ochronę formularz po formularzu.

  1. Sprawdź wymagania: PrestaShop 1.7.8, 8.0+ lub 9.0+, PHP 7.4 lub nowszy.
  2. Zainstaluj archiwum z menedżera modułów. Siedem natywnych formularzy powstaje dla każdego sklepu, dodawana jest lista domen jednorazowych i tworzone są tabele modułu.
  3. Otwórz Konfiguruj i aktywuj licencję WePresta. Dopóki licencja nie jest ważna, moduł pozostaje wyłączony, a formularze nie są sprawdzane.
  4. Zaplanuj codzienne zadanie konserwacji, z adresem podanym w konfiguracji lub dostarczoną linią poleceń. Czyści dziennik, liczniki, wygasłe blokady i pozostałe przeterminowane dane.
  5. Otwórz Formularze i kliknij Obserwuj wszystko. Wszystkie kontrole się wykonują, nic nie jest odrzucane, a dziennik zapisuje to, co zostałoby zablokowane.
  6. Poczekaj kilka dni, potem otwórz Dziennik zablokowanych prób i Pulpit. Powody pokazują, czy blokada dotknęłaby botów, czy klientów, zwłaszcza za adresem współdzielonym przez firmę lub operatora komórkowego.
  7. Uruchom Przetestuj moją ochronę. Narzędzie czyta stronę formularza jak odwiedzający, sprawdza pola, token i skrypt, wysyła bezpośrednie zgłoszenie bez pól, aby sprawdzić, że zostałoby odrzucone, i sprawdza klucze wybranego dostawcy.
  8. Włącz ochronę przyciskiem Chroń wszystko albo formularz po formularzu, zaczynając od kontaktu i newslettera, potem rejestracji, logowania i opinii. Formularz klienta przy zamówieniu zostaw z szerokimi limitami i bez minimalnego czasu.
  9. Dodaj CAPTCHA tylko wtedy, gdy formularz nadal jest celem, po wpisaniu kluczy i sprawdzeniu przycisku Test. Adresy partnerów i narzędzi monitorujących umieść na liście dozwolonych, zanim zaostrzysz limity.

Moduł nie zapisuje żadnego pliku motywu: Classic i Hummingbird działają bez zmian. Uprawnienia pracowników dzielą się na przeglądanie, zarządzanie i dane, sprawdzane po stronie serwera. Dokumentacja opisuje każde ustawienie, także zachowanie, gdy dostawca nie odpowiada.

Jak czytać dziennik i reagować na odmowę?

Dla każdej próby dziennik podaje formularz, wynik, powód, datę, zamaskowany adres i domenę e-mail, a także działania dostępne w wierszu.

Powody są jednoznaczne: Pole-pułapka wypełnione, Wysłano zbyt szybko, Brak pól ochrony, Zbyt wiele zgłoszeń z tego adresu, CAPTCHA nieudana, Adres na liście blokowanych, E-mail na liście blokowanych, Domena e-mail nie może odbierać wiadomości. Każdy wiersz pozwala zablokować adres lub jego zakres, dopuścić adres, zablokować domenę e-mail albo zdjąć blokadę. Dziennik możesz wyeksportować do CSV i wyczyścić.

Dziennik zablokowanych prób: każda odmowa ma powód, zamaskowany adres, domenę e-mail i działania w wierszu.
Dziennik zablokowanych prób: każda odmowa ma powód, zamaskowany adres, domenę e-mail i działania w wierszu.

Pulpit daje obraz całości: Przyjęte, Zablokowane, Wskaźnik blokad, Zostałoby zablokowane, Przyjęte bez kontroli i Zwolnione, z wykresem 30 dni i szczegółami według formularza i powodu. Skok na jednym formularzu widać od razu.

Pulpit: zgłoszenia przyjęte i zablokowane, wskaźnik blokad i wykres z ostatnich 30 dni.
Pulpit: zgłoszenia przyjęte i zablokowane, wskaźnik blokad i wykres z ostatnich 30 dni.

Przechowywanie wynosi domyślnie 30 dni i ustawia się je w Rejestr i prywatność. Adres nie jest zapisywany jawnie: jest maskowany, a skrót służy listom i limitom. Zachowana jest domena e-mail, nigdy pełny adres.

Konkretny przypadek: formularz kontaktowy zalany w nocy

Formularz kontaktowy co noc otrzymuje kilkanaście identycznych wiadomości. Dziennik pokazuje Pole-pułapka wypełnione na tym samym zakresie adresów. Blokujesz zakres jednym kliknięciem z wiersza, a następnego dnia sprawdzasz, czy zgłoszenia klientów nadal przechodzą. Jeśli zatrzymana zostanie prawdziwa wiadomość, lista dozwolonych ją przywraca bez wyłączania ochrony.

Czy potrzebna jest zewnętrzna CAPTCHA i którą wybrać?

Nie domyślnie: kontrole po stronie serwera działają bez klucza i konta zewnętrznego, a CAPTCHA dodaje się tylko do formularza, który nadal jest celem.

Gdy jej chcesz, wybór odbywa się formularz po formularzu: Google reCAPTCHA v2 z polem wyboru lub niewidoczna, reCAPTCHA v3 z progiem wyniku, Cloudflare Turnstile, hCaptcha w wersji normalnej, kompaktowej lub niewidocznej albo Friendly Captcha. Klucze wpisujesz w Konfiguruj; moduł nigdy ich nie pokazuje, a przycisk Test sprawdza, czy są akceptowane i czy domena jest dozwolona.

Domyślnie skrypt dostawcy ładuje się tylko na stronach z formularzem chronionym przez tego dostawcę, przy pierwszym kontakcie z formularzem. Strona bez formularza nic nie ładuje. Jeśli dostawca nie odpowiada, wybierasz, czy zgłoszenie przechodzi, zapisane jako niesprawdzone, czy zostaje odrzucone.

Zgoda też jest ustawieniem: skrypt może czekać na zgodę odwiedzającego, z modułem Cookies RODO lub innym narzędziem zgód. Bez zgody formularz pozostaje chroniony przez kontrole natywne albo pokazuje komunikat, jeśli wybrano pytanie o zgodę.

Zewnętrzna CAPTCHA ma własne warunki i własną politykę prywatności. To Ty musisz wspomnieć o niej w swojej polityce i wybrać właściwą zgodę; moduł nie certyfikuje zgodności z RODO.

Co robi moduł i jakie ma ograniczenia?

Moduł ogranicza automatyczne zgłoszenia i dokumentuje każdą odmowę, ale nie obiecuje zera spamu i nie zastępuje zapory ani porady prawnej.

  • Brak obietnicy wyniku. Człowiek może poprawnie wypełnić formularz. Moduł czyni automatyczne zgłoszenia kosztownymi i widocznymi; nie usuwa ich wszystkich.
  • Zamówienie zostaje poza filtrem. Koszyk, płatność, potwierdzenie i adresy nie są sprawdzane. Formularz klienta przy zamówieniu zachowuje szerokie limity.
  • Odwiedzający dzielą adresy. Zbyt surowy limit może zaszkodzić firmie lub operatorowi komórkowemu. Tryb obserwacji i lista dozwolonych pozwalają sprawdzić przed zaostrzeniem.
  • Brak certyfikacji RODO. Moduł pomaga ograniczyć zbierane dane i daje hooki eksportu i usuwania, ale nie zastępuje polityki prywatności ani porady prawnej.
  • Ważna licencja. Bez ważnej licencji moduł się wyłącza: formularze nie są sprawdzane, CAPTCHA nie jest pokazywana i nic nie trafia do dziennika. Ustawienia, listy i dziennik zostają.
  • Połączenia sieciowe. Weryfikacja CAPTCHA, kontrola MX i sprawdzanie robotów wyszukiwarek korzystają z połączeń wychodzących; jeśli dostawca CAPTCHA nie odpowiada, obowiązuje wybrane zachowanie, a nieudane zapytanie DNS nigdy nie odrzuca zgłoszenia.

W sklepie wielosklepowym ustawienia, formularze, dziennik i statystyki pozostają osobne dla każdego sklepu, a wpisy list mogą być współdzielone. Jeśli formularz kontaktowy pochodzi z innego modułu, karta dynamicznego formularza kontaktowego pokazuje typowy przypadek; dla ogólnego bezpieczeństwa sklepu audyt bezpieczeństwa uzupełnia ochronę formularzy.

Najczęściej zadawane pytania

Dlaczego moja CAPTCHA nie blokuje bezpośrednich zgłoszeń?
CAPTCHA działa w przeglądarce odwiedzającego. Bot, który wysyła zgłoszenie prosto do kontrolera, nie ładuje strony, więc i widżetu, i nie ma żadnego tokenu do przedstawienia. Serwer otrzymuje poprawne żądanie i je przetwarza. Moduł sprawdza zgłoszenie przed tym przetwarzaniem: brak podpisanego tokenu, wypełnione pole-pułapka lub zbyt krótki czas wystarczą do odmowy.
Czy pole-pułapka wystarczy do ochrony formularza?
Samo nie. Pole-pułapka zatrzymuje boty wypełniające wszystkie pola, ale bot napisany pod Twój formularz może je pominąć. Moduł łączy je z podpisanym tokenem, minimalnym czasem wypełniania, limitem na adres i e-mail oraz odrzucaniem duplikatów. To ten zestaw czyni automatyczne zgłoszenie kosztownym, a nie pojedynczy trik.
Czy mogę zablokować adres IP lub domenę e-mail?
Tak. Listy przyjmują adresy IPv4 i IPv6, zakresy CIDR, adresy e-mail, domeny i wzorce z gwiazdką. Wpis dodajesz ręcznie, przez import CSV albo bezpośrednio z wiersza dziennika. Istnieją też dwie listy dozwolonych, a adres obecny jednocześnie na liście blokowanych i dozwolonych jest dozwolony: zezwolenie wygrywa z blokadą.
Czy trzeba zmieniać motyw, aby dodać ochronę?
Nie. Moduł wstawia ukryte pola i skrypt do strony podczas renderowania i nie zapisuje żadnego pliku motywu; Classic i Hummingbird działają bez zmian. Dopóki formularz nigdy nie wysłał pól modułu, zgłoszenie bez tokenu jest tylko zapisywane, aby nie tracić wiadomości podczas sprawdzania strony narzędziem Przetestuj moją ochronę.
Czy zewnętrzna CAPTCHA jest zgodna z RODO?
To zależy od dostawcy, jego warunków i wdrożonej zgody. Moduł może poczekać na zgodę odwiedzającego przed załadowaniem skryptu, z modułem Cookies RODO lub innym narzędziem zgód; bez zgody kontrole natywne pozostają aktywne. Pomaga ograniczyć zbierane dane, ale nie certyfikuje zgodności i nie zastępuje porady prawnej.

Produkty w tym artykule

Znajdź moduł, którego potrzebuje Twój sklep

Zobacz moduły