Blog 24/7

CAPTCHA

TAB. 1Hasłobez tłumaczenia
Po angielskuCAPTCHA (reCAPTCHA, Turnstile)
Którą formą pisaćbez tłumaczenia Skrót, nazwa własna albo nazwa standardu — nie tłumaczymy w ogóle.
Inne formycaptcha · reCAPTCHA · Turnstile · zabezpieczenie antyspamowe
KategoriaStrony WWW, WordPress i hosting

CAPTCHA to test, który ma odróżnić człowieka od programu, zanim strona przyjmie formularz. Nazwa jest skrótem od „Completely Automated Public Turing test to tell Computers and Humans Apart” [1]. Według W3C to zadanie łatwe dla człowieka, a trudne dla automatu [1]. Na stronach internetowych CAPTCHA chroni formularze logowania, rejestracji, komentarzy i kontaktu przed złośliwymi botami.

Jak działa

Klasyczne CAPTCHY pokazują zniekształcone znaki do przepisania [1]. Nowsze usługi oceniają ryzyko w tle i pokazują zadanie tylko wtedy, gdy ruch wygląda podejrzanie, albo nie pokazują go wcale [4]. Niezależnie od odmiany schemat jest ten sam: widżet w przeglądarce zwraca token, a serwer strony musi ten token sprawdzić u dostawcy usługi. Pokazuje to schemat poniżej.

RYS. 1Weryfikacja tokenu CAPTCHA

Krok weryfikacji po stronie serwera jest obowiązkowy. Dokumentacja Cloudflare mówi wprost, że sam widżet w przeglądarce nie chroni formularza, a token niesprawdzony na serwerze można podrobić [5]. Token Turnstile jest ważny 300 sekund i można go zweryfikować tylko raz [5]. Token hCaptcha także jest jednorazowy i domyślnie wygasa po 120 sekundach [6], a token reCAPTCHA po dwóch minutach [3]. Klucz tajny służący do weryfikacji nie może trafić do kodu po stronie przeglądarki [5].

Odmiany

Popularne usługi różnią się tym, czy użytkownik w ogóle widzi zadanie.

UsługaJak działaWynik dla serwera
reCAPTCHA v3bez interakcji, ocena każdego żądania [3]wynik od 0,0 do 1,0 [3]
Cloudflare Turnstiletryby zarządzany, nieinteraktywny, niewidoczny [4]token do Siteverify [5]
hCaptchazadanie do rozwiązania [6]token do siteverify [6]

W reCAPTCHA v3 decyzję podejmuje właściciel strony. Google proponuje na początek próg 0,5 i zaleca sprawdzać przy weryfikacji, czy nazwa akcji zgadza się z oczekiwaną [3]. Turnstile działa bez kierowania ruchu strony przez Cloudflare i według dostawcy nie odczytuje treści formularzy [4].

Szczegóły wdrożenia też mają znaczenie. Google zaleca wywoływać ocenę reCAPTCHA v3 w chwili, gdy użytkownik wykonuje chronioną akcję, a nie przy ładowaniu strony, bo token wygasa po dwóch minutach [3]. Nazwy akcji mogą zawierać tylko litery, cyfry, ukośniki i podkreślenia i nie powinny zależeć od konkretnego użytkownika [3]. W Turnstile tryb zarządzany sam decyduje, czy pokazać pole wyboru, tryb nieinteraktywny nigdy nie wymaga działania odwiedzającego, a tryb niewidoczny ukrywa widżet całkowicie [4]. Dokumentacja hCaptcha ostrzega, że nazwa hosta zwracana przy weryfikacji pochodzi z przeglądarki i nie może służyć do uwierzytelniania; nadaje się tylko do statystyk [6].

W WordPressie

WordPress dodaje CAPTCHA wtyczką albo w ustawieniach wtyczki formularzy. Przykładowo wtyczka hCaptcha for WP obsługuje formularze logowania, rejestracji, przypomnienia hasła i komentarzy, a także WooCommerce, Contact Form 7 i ponad 60 innych wtyczek i motywów [7]. Jej kreator pozwala przejść z reCAPTCHA albo Turnstile [7].

Przy wdrożeniu warto sprawdzić trzy rzeczy:

  • czy CAPTCHA obejmuje wszystkie formularze, przez które da się zalogować, założyć konto albo wysłać treść;
  • czy wtyczka weryfikuje token na serwerze, a nie tylko wyświetla widżet [5];
  • czy formularz logowania ma też limit prób logowania, bo CAPTCHA nie jest jedyną warstwą.

Widżet CAPTCHA jest usługą zewnętrzną, więc przy wyborze liczy się też podejście dostawcy do danych odwiedzających. Dostawca hCaptcha deklaruje na stronie wtyczki certyfikaty ISO 27001 i 27701 oraz udział w programie Data Privacy Framework [7].

Ograniczenia

CAPTCHA spowalnia automaty, ale ich nie zatrzymuje. OWASP pisze, że test przy logowaniu pomaga wykrywać boty i może spowolnić credential stuffing i password spraying, ale istnieją narzędzia i usługi, które łamią CAPTCHY z dość wysoką skutecznością [2]. Sygnałem takiego obejścia jest nienaturalnie wysoki odsetek rozwiązanych testów [2]. W3C dodaje, że rozpoznawanie znaków coraz łatwiej pokonuje tekstowe CAPTCHY, a część ataków korzysta z ludzi opłacanych za rozwiązywanie zadań [1].

Drugim ograniczeniem jest dostępność. W3C zwraca uwagę, że prośba o odczytanie zniekształconych znaków wymaga od osób niewidomych albo z dysleksją zadania, którego najtrudniej im wykonać, a wersja dźwiękowa wyklucza osoby głuche [1]. OWASP ostrzega, że blokowanie przeglądarek bez JavaScriptu utrudnia korzystanie ze strony osobom używającym czytników ekranu [2].

Dobre praktyki

OWASP proponuje pokazywać CAPTCHA tylko przy żądaniach podejrzanych, na przykład z nietypowej lokalizacji albo znanego serwera proxy, zamiast przy każdym logowaniu [2]. W3C wśród alternatyw bez interakcji wymienia pułapki typu honeypot, czyli ukryte pola formularza, rate limiting dla nowych kont, analizę zachowania i filtry antyspamowe [1]. Wśród metod interaktywnych wskazuje reCAPTCHA v3, FIDO2 / WebAuthn i uwierzytelnianie wieloskładnikowe [1]. Przeciw spamowi w komentarzach i atakom siłowym (brute-force) te metody można łączyć z CAPTCHA, zamiast polegać na jednej warstwie.

Fałszywa CAPTCHA

Znajomy wygląd testu wykorzystują przestępcy. CERT Polska 20 listopada 2024 roku ostrzegł przed stronami, które udają weryfikację CAPTCHA i każą wcisnąć Win+R, potem Ctrl+V i Enter [8]. W ten sposób użytkownik sam uruchamia polecenie wcześniej skopiowane do schowka, które instaluje infostealer Lumma Stealer [8]. CERT Polska przypomina, że żadna prawdziwa CAPTCHA nie wymaga wychodzenia poza stronę internetową [8]. Szerzej opisuje to hasło fałszywa CAPTCHA.

TAB. 2

Przypisy

8
  1. [1] Inaccessibility of CAPTCHA: Alternatives to Visual Turing Tests on the Web · W3C
  2. [2] Credential Stuffing Prevention Cheat Sheet · OWASP
  3. [3] reCAPTCHA v3 · Google for Developers
  4. [4] Cloudflare Turnstile · Cloudflare
  5. [5] Turnstile: Server-side validation · Cloudflare
  6. [6] hCaptcha Developer Guide · hCaptcha
  7. [7] hCaptcha for WP · WordPress.org
  8. [8] Uwaga fałszywa CAPTCHA, czyli nie daj się zainfekować · CERT Polska
TAB. 3

Hasła w tym artykule

12
TAB. 4

Linkują tutaj

17

Wszystkie kategorie → · Hasło w słowniku →

Blog 24/7
05.11CISA i FBI wzywają do zabezpieczenia sterowników chłodzenia po atakach w Europietherecord.media05.11Midnight Blizzard atakowała iPhone'y i Androidy przez zainfekowane strony w Europie i USAsecurityweek.com05.11APT29 kradła dane z iPhone'ów i Androidów przez przejęte i podrobione stronytherecord.media05.11Grupa APT29 przejęła skrypt Plerdy i atakowała niezałatane iPhone'y i Androidythehackernews.com05.11Microsoft wykrył 7,3 mld wiadomości phishingowych w III kwartale 2026microsoft.com05.11DigiCert ujawnia wyciek danych klientów i skanów dokumentów tożsamościbleepingcomputer.com05.11CWPdoor podmienia serwer cwpsrv w Control Web Panel i otwiera tylne wejście do Linuksableepingcomputer.com05.11Brytyjskie NCSC ostrzega, że narzędzia AI zwiększyły liczbę wykrywanych luk zero-daythehackernews.com05.11Skaner RootEvidence sprawdza starą lukę w Cisco IOS i dodaje nagłówki Opt-Outisc.sans.edu05.11Włamanie do portalu grantowego Norad, zagrożone dane 20 614 użytkownikówhelpnetsecurity.com