1. Do czego służy moduł
Boty wysyłają spam przez formularz kontaktowy, zakładają fałszywe konta, zgadują hasła w formularzu logowania, zamawiają e-maile do zmiany hasła na przypadkowe adresy i zaśmiecają listę newslettera. Moduł chroni te pięć formularzy za pomocą Google reCAPTCHA v3: Google ocenia każdą wizytę w tle, więc klienci nie widzą żadnych zagadek ani pól do zaznaczenia, a moduł zatrzymuje formularze wysłane przez boty.
Chronione formularze: formularz kontaktowy, logowanie (także w trakcie składania zamówienia), rejestracja (także formularz gościa i konta w zamówieniu), prośba o zmianę hasła i zapis do newslettera.
Działa z PrestaShop 1.7.8, 8.x i 9.x (PHP 7.2.5 lub nowszy), z szablonami Classic i Hummingbird oraz w trybie multistore.
2. Instalacja
- Pobierz moduł z Moje konto → Historia zamówień w addonspresta.com.
- W panelu administracyjnym otwórz Moduły → Menedżer modułów i kliknij Prześlij moduł.
- Upuść plik
ap_recaptcha_v1.0.0.zipi poczekaj na potwierdzenie. - Kliknij Konfiguruj na karcie modułu.
Jeśli masz dostęp do konsoli serwera, możesz też rozpakować archiwum do katalogu modules/ i w katalogu sklepu
uruchomić php bin/console prestashop:module install ap_recaptcha.
Klucze Google
- Otwórz konsolę administracyjną Google reCAPTCHA, https://www.google.com/recaptcha/admin, i zaloguj się kontem Google.
- Utwórz klucz: nadaj mu nazwę, wybierz Oparty na wyniku (v3) i dodaj wszystkie domeny sklepu (np.
mojsklep.pl; subdomeny są objęte automatycznie). - Google pokaże dwa klucze: klucz witryny i klucz tajny. Wklej je w module (punkt 4).
Google daje 10 000 bezpłatnych sprawdzeń miesięcznie na organizację Google Cloud, co wystarcza większości sklepów; powyżej tej liczby Google prosi o włączenie płatności w Google Cloud. Klucze utworzone wcześniej Google przeniósł do projektów Google Cloud i nadal działają.
3. Jak to działa
Moduł dodaje do stron sklepu mały skrypt. Gdy odwiedzający zaczyna wypełniać chroniony formularz, skrypt wczytuje reCAPTCHA od Google. Przy wysyłce skrypt prosi Google o jednorazowy token i dołącza go do formularza. Serwer sklepu pyta wtedy Google, ile ten token jest wart: wynik od 0.0 (na pewno bot) do 1.0 (na pewno człowiek). Poniżej Twojego progu formularz zostaje zatrzymany, a odwiedzający widzi komunikat: „Nie udało się potwierdzić, że nie jesteś robotem. Spróbuj ponownie.”
Co zostaje, gdy formularz jest zatrzymany:
- formularz kontaktowy i rejestracja — wszystko, co klient wpisał, zostaje w formularzu;
- logowanie i zmiana hasła — strona przeładowuje się z komunikatem, adres e-mail trzeba wpisać ponownie;
- newsletter — komunikat pojawia się zamiast potwierdzenia zapisu.
Moduł sprawdza też, czy token powstał dla tego formularza i w domenie Twojego sklepu. Token działa tylko raz.
Jeśli Google nie odpowie w ciągu 3 sekund, formularz domyślnie przechodzi (albo jest blokowany, jeśli tak wybierzesz), a problem trafia do Zaawansowane → Logi.
Przeglądarka odwiedzającego łączy się z Google tylko wtedy, gdy używa chronionego formularza, a nie na każdej stronie. Moduł wysyła do Google tylko token i Twój klucz tajny. Nie łączy się z addonspresta.com.
4. Funkcje i ustawienia
Otwórz Moduły → Menedżer modułów → Niewidoczna reCAPTCHA v3 → Konfiguruj. Ramka Pomoc na górze prowadzi do tej instrukcji, do strony modułu w addonspresta.com i do naszego adresu wsparcia.
Klucze Google reCAPTCHA
Klucz witryny i Klucz tajny — wklej klucze z konsoli Google. Klucz tajny nie jest już pokazywany po zapisie: zostaw pole puste, aby go zachować. Dopóki oba klucze nie są zapisane, żaden formularz nie jest chroniony.
Przy zapisie strona pobiera testowy token z Twoim kluczem witryny i prosi Google o sprawdzenie go Twoim kluczem tajnym. Zobaczysz jeden z komunikatów:
- Google zaakceptował klucze — wszystko działa;
- Google nie zaakceptował kluczy — klucz tajny należy do innego klucza witryny albo klucz nie jest oparty na wyniku (v3);
- Nie udało się sprawdzić kluczy — Google nie wydał tokenu na tej stronie: sprawdź klucz witryny i czy Twoja domena jest na jego liście domen;
- Google zaakceptował klucze, ale test odbył się na… — panel działa w innej domenie niż sklep: upewnij się, że domena sklepu też jest na liście domen klucza.
Chronione formularze
Formularz kontaktowy, Logowanie, Rejestracja, Reset hasła, Newsletter — wyłącz formularz, którego nie chcesz sprawdzać. Formularz kontaktowy wymaga natywnego modułu Formularz kontaktowy, a newsletter modułu Subskrypcja newslettera; gdy któryś z nich jest wyłączony, jego przełącznik jest nieaktywny.
Działanie
Próg wyniku — formularze z niższym wynikiem są zatrzymywane. Google zaleca 0.5. Wyższa wartość zatrzymuje więcej botów, ale też więcej prawdziwych klientów.
Gdy Google nie odpowiada — Przepuść formularz (zalecane: klienci zawsze mogą się zalogować i do Ciebie napisać) albo Zablokuj formularz.
Plakietka reCAPTCHA — Google pokazuje małą plakietkę w prawym dolnym rogu stron z chronionym formularzem. Możesz ją ukryć; Google wymaga wtedy swojej informacji („Ta strona jest chroniona przez reCAPTCHA i obowiązują na niej Polityka prywatności oraz Warunki korzystania z usług Google.”) pod każdym chronionym formularzem — moduł ją dodaje.
Tryb testowy — sprawdza każdy formularz, ale żadnego nie zatrzymuje. Każdy formularz, który zostałby zatrzymany, trafia do Zaawansowane → Logi z powodem i wynikiem. Włącz go na kilka dni, żeby dobrać próg, a potem wyłącz.
Pomiń formularz kontaktowy dla zalogowanych klientów — klienci z kontem piszą do Ciebie bez sprawdzania.
5. Multistore
Klucze i ustawienia zapisują się dla sklepu albo grupy sklepów wybranej w nagłówku panelu. Wybierz Wszystkie sklepy, aby ustawić te same wartości wszędzie, albo jeden sklep, aby nadać mu własne — na przykład własne klucze, gdy sklep ma własną domenę. Jedna licencja obejmuje wszystkie sklepy instalacji.
6. Odinstalowanie
Menedżer modułów → Niewidoczna reCAPTCHA v3 → Odinstaluj usuwa ustawienia modułu razem z Twoimi kluczami Google. Aby je zachować, użyj Wyłącz. Klucze zostają w Twojej konsoli Google.
7. Najczęstsze pytania i problemy
Czy muszę wspomnieć o reCAPTCHA w polityce prywatności? Tak. Gdy ktoś używa chronionego formularza, Google otrzymuje jego adres IP i zapisuje własne pliki cookie. Możesz dodać, dopasowując do swojej polityki: „Aby chronić nasze formularze przed spamem i nadużyciami, korzystamy z Google reCAPTCHA (Google Ireland Limited). Gdy używasz formularza, Google przetwarza dane o Twoim urządzeniu i sposobie korzystania ze strony, aby odróżnić ludzi od botów. Obowiązują Polityka prywatności i Warunki korzystania z usług Google.” Zapytaj swojego doradcę, czy baner cookies też powinien to wymieniać.
Klienci piszą, że widzą „Nie udało się potwierdzić, że nie jesteś robotem”. Włącz Tryb testowy i sprawdź wyniki w Zaawansowane → Logi. Jeśli prawdziwi klienci dostają niskie wyniki, obniż Próg wyniku (np. do 0.3). Niższe wyniki dostają klienci korzystający z VPN albo blokujący skrypty zewnętrzne.
Po zatrzymaniu formularz kontaktowy pokazuje dwa komunikaty. Moduł Formularz kontaktowy dodaje własny komunikat „spróbuj ponownie”, gdy moduł zatrzyma wiadomość. Tak ma być; klient musi tylko wysłać formularz jeszcze raz.
Spam nadal przychodzi. Sprawdź, czy oba klucze są zapisane i czy Tryb testowy jest wyłączony. Potem podnieś trochę Próg wyniku, np. do 0.7. Spam wysyłany przez formularz innego modułu nie jest zatrzymywany.
Przestało działać logowanie w okienku mojego szablonu. Niektóre szablony logują klientów we własnym okienku. Wyłącz Logowanie (albo Rejestrację) albo poproś autora szablonu o standardowy formularz logowania.
Nic nie jest sprawdzane i nie widać plakietki. Zapisz oba klucze, a potem wyczyść pamięć podręczną w Zaawansowane → Wydajność. Plakietka pojawia się tylko na stronach z chronionym formularzem, gdy odwiedzający zacznie go wypełniać.
Po ukryciu plakietki pod formularzami nie ma informacji Google.
Informację wstawia hook displayBeforeBodyClosingTag, który mają szablony Classic i Hummingbird. Własny szablon musi go
zawierać.
W logach są problemy z Google.
„Google check failed (service…)” oznacza, że serwer nie połączył się z Google: sprawdź, czy może otwierać połączenia
HTTPS do www.google.com. „Google check failed (secret…)” oznacza błędny klucz tajny: wklej go ponownie.
8. Aktualizacje i wsparcie
Aktualizacje są bezpłatne dożywotnio: nowe wersje pobierasz z Moje konto → Historia zamówień w addonspresta.com i wgrywasz jak nowy moduł. Ustawienia zostają zachowane.
Wsparcie obejmuje 12 miesięcy od zamówienia: napisz na mail@addonspresta.com albo przez formularz kontaktowy w addonspresta.com (od poniedziałku do piątku, 10:00–16:00; odpowiadamy zwykle w ciągu 2 dni roboczych). Podaj wersję PrestaShop, wersję modułu i kroki, które prowadzą do problemu.