SPAM właściwie stał się naszą codziennością. I nie dotyczy to tylko skrzynek e-mail, ale również stron. SPAMerzy – zazwyczaj nie oni bezpośrednio, ale używane przez nich skrypty – nieustannie przeczesują internet w poszukiwaniu jakiegokolwiek miejsca, gdzie można by cokolwiek wypełnić. A nuż się uda i SPAM trafi na podatny grunt. Jednym z wektorów ataku są formularze na stronie internetowej. Sposobów ochrony jest sporo, a jednym z popularniejszych, a zarazem najskuteczniejszych jest mechanizm Google reCAPTCHA v3. Jego niewątpliwą zaletą jest też to, że choć zatrzymuje SPAM, to właściwie nie wpływa w żaden sposób na użytkownika, bo ten w większości przypadków może nawet nie wiedzieć, że reCAPCHA v3 chroni stronę.
Spis treści w artykule
Prawie niewidzialne Google reCAPTCHA v3 stoi na straży formularzy
Dzieje się tak dlatego, że w przeciwieństwie do wcześniejszych wersji (oraz innych rozwiązań tego typu), w przypadku reCAPTCHA v3 użytkownik strony zazwyczaj nie musi podejmować żadnych działań. Nie tylko nie musi rozwiązywać tekstowych łamigłówek, ale nawet nie musi – jak to było w reCAPTCHA v2 – zaznaczać pola „nie jestem robotem”. Jego zachowanie jest analizowane w tle i na tej podstawie jest podejmowana decyzja o tym, czy wyświetlić jakieś zadanie do rozwiązania (CAPTCHA), czy też nie. I zazwyczaj działa to na tyle skutecznie, że SPAM jest blokowany, a zwykły użytkownik nawet nie wiem, że chwile temu przeszedł test na to, czy nie jest automatem.
Przynajmniej w teorii nie wie, bo zgodnie z wymaganiami Google, na każdej stronie korzystającej z Google reCAPTCHA v3 musi pojawić się odpowiednia informacja. W standardzie jest mały kwadracik z prawym dolnym rogu strony:
Mnie to zazwyczaj nie przeszkadza, ale są sytuacje, gdy zachodzi potrzeba pozbycia się tego elementu. I ostatnio z takim zapytaniem zwróciła się do mnie czytelniczka.
Ukrywanie znaczka Google reCAPTCHA za pomocą CSSa
Pozorni sprawa jest prosta, bo nawet w dokumentacji Google dotyczącej reCAPTCHA jest podany gotowiec do wklejenia w pliku CSS odpowiedzialnym za wygląd strony (w przypadku WordPressa może to być też odpowiednia opcja w ustawieniach motywu, lub sekcja „dodatkowy CSS” w narzędziu personalizacji (WP-Admin -> Wygląd -> Dostosuj: Dodatkowy CSS)):
.grecaptcha-badge { visibility: hidden !important; }
I teoretycznie to wystarczy, bo po takim zabiegu faktycznie znaczek Google reCAPTCHA powinien przestać się wyświetlać.
Wymagania informacyjne
Google jednak w takiej sytuacji wymaga jednak innej metody poinformowania użytkownika, że na naszej stronie korzystamy z ich mechanizmy reCAPTCHA. W tym celu – jak podaje dokumentacja – w widocznym dla użytkownika miejscu trzeba dodać taki kod:
This site is protected by reCAPTCHA and the Google <a href="https://policies.google.com/privacy" target="_blank">Privacy Policy</a> and <a href="https://policies.google.com/terms" target="_blank">Terms of Service</a> apply.
Lub w naszym języku:
Tę stronę chroni rozwiązanie reCAPTCHA. Obowiązuje <a href="https://policies.google.com/privacy" target="_blank">Polityka Prywatności</a> oraz <a href="https://policies.google.com/terms" target="_blank">Regulamin</a> Google.
Kod najlepiej umieścić np. tuż pod formularzem kontaktowym, który jest chroniony mechanizmem reCAPTCHA:
Choć jeśli kod odpowiedzialny za działanie reCAPTCHA jest wczytywany nie tylko na stronie z formularzem kontaktowym, to teoretycznie odpowiednia informacja też powinna się znaleźć na każdej stronie. Teoretycznie może to być stopka. Piszę teoretycznie, bo otwartym zostaje pytanie, czy oby w stopce będzie on – zgodnie z wymaganiami Google – odpowiednio widoczny dla użytkownika… ;-)
- Wakacje składkowe ZUS a zawieszenie działalności gospodarczej, czyli uważaj, bo być może nie będziesz mógł skorzystać (w 2024) - 1970-01-01
- Przykładowy kalkulator wyceny usługi druku 3D, czyli nie tylko materiał się liczy - 1970-01-01
- Home Assistant 2024.10, czyli nowa karta „nagłówek” i niedziałający TTS w ramach usługi Google Cloud - 1970-01-01
A czy to się nie wyklucza między sobą? Z jednej strony mamy rozwiązania typu honypad, czyli rozwiązanie no-captcha, a drugiej strony instalujemy właśnie captche?
Nie bardzo rozumiem? Bo jeśli chodzi o reCAPTCHA v3, to jeśli już, to jest to pewnego rodzaju hybryda, bo skrypt analizuje Twoje zachowanie, jeśli wszystko OK, nawet nie wiesz, że byłeś analizowany. Jeśli jednak coś się nie spodoba, to pojawia się CAPTCHA. I teraz zgodnie z wymaganiami Google użytkownik musi być poinformowany o tym, że jest analizowane jego zachowanie. Domyślnie w przypadku v3 odpowiada za to właśnie znaczek Google reCAPTCHA w prawym dolnym rogu strony. A jeśli go nie chcesz, to musisz tak jak w artykule – dodać odpowiednią informację do formularza i/lub stopki strony.
Opcja działa ale jedynie na przeglądarki w komputerze. Jest możliwość ukrycia również tego znaczka na urządzeniach mobilnych?
Z doświadczenia wiem, że działa również na urządzeniach mobilnych.
Panie Patryku a jest ryzyko, że reCaptcha v3 uzna, że formularz został wypełniony przez bot i uzna go za spam a to będzie np mail z zapytaniem o ofertę od potencjalnego klienta? Nie widzę w konsoli admin możliwości podglądu tych podejrzanych żądań…
chyba, że nie do końca rozumiem jak v3 działa…
Ryzyko zawsze jest, ale zdecydowanie mniejsze, niż sytuacja odwrotna, o czym się przekonasz najpewniej niedługo po tym, jak na stronie umieścisz niezabezpieczony formularz kontaktowy. Ale jeśli tak się stanie, i użytkownik zostanie uznany za bota, to po prostu dostanie zadanie do wykonania, by udowodnić, że jednak jest człowiekiem.