Jak poradzić sobie ze SPAMem w formularzu kontaktowym
O SPAMie pisałem już trochę w artykule Jak poradzić sobie ze spamem na blogu lub stronie na WordPressie. Tam poruszałem jak radzić sobie z niechcianymi wiadomościami w komentarzach na blogu. Teraz chciałbym przedstawić sposoby na walkę ze SPAMem, który otrzymujemy na skrzynkę mailową za pośrednictwem formularzy umieszczanych na stronie zbudowanej w oparciu o WordPressa.
Dlaczego użytkownicy i boty atakują formularze?
Zacznijmy od początku, tzn. dlaczego użytkownicy lub z reguły boty atakują formularze na stronach www:
- Wysyłają link do strony, żeby zwiększyć liczbę wejść na stronę.
- Chcą wysłać link do swojej oferty.
- Oferując wygraną na loterii, nagrodę chcą osiągnąć swój cel czyli np. zdobycie danych, rozesłanie złośliwego oprogramowania. Podobnie także wysyłają informację o konieczności dopłaty i konsekwencjach braku wpłaty. Wszystko to można zdefiniować jako phishing, czyli podszywanie się pod obdarzoną zaufaniem społecznym firmę lub instytucję w celu wyłudzenia poufnych danych.
Dlatego warto się przed tym zabezpieczyć, a podstawowym zabezpieczeniem przed takimi wiadomościami poleca się użycie reCAPTCHA, czyli mechanizm służący do potwierdzania tożsamości użytkowników.
Jak dodać reCAPTCHA do formularza kontaktowego na WordPress
- Na początku dodaj swoją witrynę na stronie https://www.google.com/recaptcha/about/ przechodząc do v3 Admin Console:
Do uzupełnienia będą następujące pola:
Etykieta: w tym polu użyj etykiety, która pozwoli na łatwą identyfikację witryny w przyszłości.
Typ reCAPTCHA: w wersji v3 (z niektórymi wtyczkami wersja v2 nie zadziała)
Domeny: Sama domena, bez przedrostków https, http oraz www, rejestracja domeny example.com obejmie również subdomenę subdomena.example.com. Można dodać kilka domen na jednym koncie
- Następnie należy pobrać klucze:
Później musimy te klucze dodać do strony na WordPressie. Zdaję sobie sprawę, że w różny sposób tworzycie formularze na swoich stronach. Pokażę w którym miejscu należy dodać klucze na przykładzie wtyczki Contact Form 7, Elementora oraz DIVI. Od razu na początku dodam, że reCAPTCHA v3 nie wymaga od użytkownika wypełniającego formularz żadnego działania np. w postaci szukania kafelków z sygnalizacją świetlną, co było charakterystyczne we wcześniejszych wersjach. ReCAPTCHA v3 działa w tle i blokuje niechciane boty.
Jak dodać reCAPTCHA w Contact Form 7
Przechodzimy będąc zalogowany do panelu administratora do zakładki Kontakt → Integracja:
W integracjach szukamy reCAPTCHA i przechodzimy do ustawień integracji:
Następnie uzupełniamy klucze i zapisujemy zmiany:
Po poprawnej integracji pojawi się komunikat:
Jak dodać reCAPTCHA w Elementor
Należy przejść do Elementor → Ustawienia → Integracje:
i dodać klucze dla reCAPTCHA:
Jak dodać reCAPTCHA w DIVI
W DIVI integracja odbywa się trochę inaczej, klucze należy dodać do formularza. Trzeba znaleźć dany formularz na stronie i w sekcji Zawartość rozwinąć Spam Protection:
Wybieramy Use A Spam Protection Service, a jako Dostawca ReCaptcha.
Poniżej w reCAPTCHA v3 Account, klikamy dodaj:
pojawi się wówczas miejsce do dodania kluczy, jako Nazwa Konta wpisujemy dowolną nazwę:
Na końcu pamiętajmy o zapisaniu zmian.
Uwagi na koniec
Po prawidłowej integracji ikona reCAPTCHA będzie widoczna w prawym dolnym rogu Twojej witryny. Pamiętaj, żeby po integracji przetestować swój formularz czy nadal poprawnie przesyła wiadomości. To bardzo ważne, żeby testować zawsze funkcjonalność po wprowadzonych zmianach, ponieważ mogą być na Twojej stronie jakieś nietypowe modyfikacje, których osoba nie tworząca danej strony o nich nie wie i nie jest w stanie przewidzieć danego zachowania. reCAPTCHA ma też jeden minus, który może być dla Ciebie istotny – trochę spowalnia proces ładowania się strony, dlatego jeśli bardzo zależy Ci na wydajności, to konieczne są dodatkowe zmiany już wprowadzane w kodzie (np. w pliku functions.php lub dedykowanej wtyczce), które będą wykluczać skrypty tego narzędzia z wszystkich stron z wyjątkiem tych z formularzem. Dzięki temu nie ucierpi wydajność, a Twoje formularze nadal będą zabezpieczone.