Niemal każdy formularz w sieci jest dziś chroniony captchą, najczęściej reCAPTCHA od Google. Sami jej używamy. Mimo to warto spojrzeć trzeźwo na to, co faktycznie daje – i czego nie daje.
Trzy warianty
- v2 z polem wyboru – znane „Nie jestem robotem”. W razie wątpliwości pojawia się zagadka obrazkowa.
- v2 niewidoczna – bez pola wyboru, kontrola działa w tle i odzywa się tylko przy podejrzeniu.
- v3 – żadnej interakcji. Zwraca wynik od 0,0 do 1,0, a strona sama decyduje, gdzie postawić granicę.
Co jest naprawdę sprawdzane
Nie pole wyboru. Kliknięcie to w zasadzie tylko pretekst, właściwa ocena dzieje się wcześniej i obok. Analizowane są między innymi:
- ruchy myszy, sposób pisania, odstępy czasowe
- istniejące pliki cookie Google, a wraz z nimi dotychczasowa historia przeglądarki
- reputacja adresu IP
- cechy przeglądarki: rozdzielczość, czcionki, wtyczki, strefa czasowa – razem często jednoznaczne
Dlatego kto wchodzi ze świeżym profilem przeglądarki przez VPN i bez plików cookie Google, znacznie częściej dostaje zagadki obrazkowe. To nie usterka, tylko zasada: bez historii nie ma na czym oprzeć zaufania.
Krok, który wielu pomija
Captcha w formularzu jest bezwartościowa, dopóki odpowiedź nie zostanie zweryfikowana po stronie serwera. Przebieg musi wyglądać tak:
- Przeglądarka pobiera token i wysyła go razem z formularzem.
- Serwer przesyła ten token wraz ze swoim tajnym kluczem do punktu weryfikacyjnego dostawcy.
- Dopiero gdy odpowiedź brzmi
success: true, formularz jest przetwarzany.
Bez kroku drugiego i trzeciego wystarczy pominąć pole przy wysyłce – skrypt kończy szybciej niż człowiek. My weryfikujemy po stronie serwera; brak tokenu również prowadzi do odrzucenia.
Przeciwko czemu nie pomaga
- Ludziom. Kto jest gotów wypełnić formularz ręcznie, przejdzie. Captcha ogranicza ilość, nie zamiary.
- Płatnym serwisom rozwiązującym. Istnieją firmy rozwiązujące captche za ułamki grosza. Wobec nadużyć motywowanych finansowo to żadna przeszkoda.
- Nadużyciom po wysłaniu. Captcha sprawdza raz. Co dzieje się z założonym dostępem później, jest dla niej niewidoczne.
Captcha jest więc jedną z warstw, a nie rozwiązaniem. U nas właściwy hamulec znajduje się za formularzem: wiadomości wychodzące są sprawdzane przed doręczeniem.
Kwestia ochrony danych
reCAPTCHA przekazuje Google adres IP i dane o interakcji. Kto stosuje ją w UE, musi ujawnić to w polityce prywatności i wskazać podstawę prawną; zwykle jest to prawnie uzasadniony interes w przeciwdziałaniu nadużyciom. Czy się obroni, zależy od tego, czy istnieje łagodniejszy środek – a w zależności od formularza często istnieje.
Alternatywy
- Pole pułapka (honeypot). Ukryte przez CSS pole, którego człowiek nigdy nie wypełni. Jeśli coś w nim jest, był to skrypt. Nic nie kosztuje, nic nie przesyła, a wyłapuje zaskakująco dużą część szumu.
- Pomiar czasu. Formularz wysłany po 400 milisekundach nie został wypełniony przez człowieka.
- Limity częstotliwości. Ograniczona liczba operacji na adres IP w oknie czasowym. Działa przeciw masowości, niezależnie od tego, czy to człowiek, czy maszyna.
- Proof of work. Przeglądarka rozwiązuje małe zadanie obliczeniowe. Dla jednego użytkownika niezauważalne, przy tysiącu żądań kosztowne. Rozwiązania takie jak Altcha czy Friendly Captcha obywają się bez przesyłania danych do osób trzecich.
- hCaptcha. Funkcjonalnie podobna, inny dostawca – zasadnicze pytanie o prywatność pozostaje.
Podsumowanie
reCAPTCHA powstrzymuje zautomatyzowany szum i to sporo warte. Nie zastępuje jednak ani limitów częstotliwości, ani kontroli treści tam, gdzie nadużycie naprawdę boli. Dla wielu formularzy połączenie honeypota, pomiaru czasu i limitu częstotliwości byłoby wyborem oszczędniejszym w dane, o porównywalnym skutku.