Späť na blog
Technika Publikované 27.08.2026 Čítanie na 7 min

CAPTCHA tam je – ale nič nechráni

Viditeľný widget reCAPTCHA, hCaptcha alebo Turnstile hovorí málo o tom, či je formulár chránený. Tu sú typické chybné konfigurácie a spôsob, ako svoje formuláre skontrolovať za pár minút.

Mnohí majitelia webových stránok pridajú do kontaktného formulára CAPTCHA, uvidia, ako sa objaví malý odznak alebo zaškrtávacie políčko, a považujú problém so spamom za vyriešený. Potom však nezmysly prichádzajú ďalej. Samotná CAPTCHA je často v poriadku – len nie je prepojená s ničím, čo by dokázalo bota zastaviť. Tento článok prechádza typické spôsoby, ako sa reCAPTCHA, hCaptcha a Cloudflare Turnstile stanú len dekoráciou, a ako svoje formuláre skontrolovať.

Kde ochrana skutočne prebieha

Všetky tri služby fungujú na rovnakom princípe. Skript v prehliadači vykoná svoje kontroly a odovzdá formuláru token – krátky reťazec, ktorý hovorí „tento návštevník prešiel“. Token putuje s odoslaním formulára na Váš server. Až tam padne skutočné rozhodnutie: Váš server pošle token spolu s tajným kľúčom poskytovateľovi a dostane odpoveď – úspech alebo neúspech a pri reCAPTCHA v3 aj skóre. Ak niektorý článok tohto reťazca chýba, widget stále vyzerá úplne normálne, ale bot, ktorý posiela dáta priamo na obsluhu Vášho formulára, prejde bez problémov.

Reťazec, od ktorého CAPTCHA závisí
1Skript sa načíta
Skript poskytovateľa sa načíta a smie na stránke s formulárom bežať.
2Token sa vydá
Prehliadač dostane krátkodobý token, ktorý možno použiť len raz.
3Token sa odošle
Token sa pošle na server spolu s poľami formulára.
4Server overí
Váš server overí token u poskytovateľa pomocou tajného kľúča.
5Server rozhodne
Odoslanie sa odmietne, ak odpoveď nie je pozitívna (a pri v3 skóre nie je dostatočne vysoké).
Ochrana existuje len vtedy, ak funguje každý krok – a tie rozhodujúce prebiehajú na serveri, mimo dohľadu.

Testovací kľúč, ktorý prepustí všetko

Google, hCaptcha a Cloudflare zverejňujú špeciálne testovacie kľúče, aby vývojári mohli spúšťať automatizované testy bez riešenia hádaniek. S príslušným testovacím tajným kľúčom overenie vždy uspeje – to je ich jediný účel. Sú určené pre lokálne a staging prostredia, ale pravidelne prežijú presun do produkcie: vývojár ich vloží počas tvorby, stránka sa spustí a nikto ich nevymení. reCAPTCHA vo widgete aspoň zobrazí upozornenie, že je určená len na testovanie, ale pri neviditeľnom nastavení sa tam takmer nikto nepozrie. Ak sú v prevádzke testovací kľúč stránky aj testovací tajný kľúč, prejde každé odoslanie, či už pochádza od človeka, alebo od bota; ak je testovacím kľúčom len kľúč stránky, overenie naopak zlyhá a skutočné správy môžu byť odmietnuté.

Token, ktorý nikto nekontroluje

Druhou klasikou je server, ktorý sa poskytovateľa nikdy nespýta. Widget beží, token sa vytvorí a odošle a obsluha formulára ho potom jednoducho ignoruje. Typickými zdrojmi sú ručne písané formuláre, skopírované útržky kódu, ktoré pokrývajú len stranu prehliadača, a nedokončené nastavenia pluginov. Blízky príbuzný: server síce volá overovaciu službu, ale kontroluje len to, či požiadavka prešla, nie čo hovorí odpoveď. Alebo je hranica skóre pre reCAPTCHA v3 nastavená na 0, čím sa prijme každé skóre, ktoré služba môže vrátiť. Niektoré obsluhy tiež „zlyhávajú otvorene“: ak token chýba alebo overenie zlyhá, správu aj tak prijmú – a bot jednoducho token vynechá.

Keď sa widget v skutočnosti nikdy nenačíta

Iné chybné konfigurácie naopak pokazia stranu prehliadača. Ak kľúč stránky nie je zaregistrovaný pre doménu – typické po presune zo stagingu do produkcie, zmene domény alebo novej subdoméne –, poskytovateľ odmietne vydávať tokeny a zobrazí chybu vo widgete alebo v konzole prehliadača. Po zmene témy alebo aktualizácii pluginu môžu byť značky widgetu stále na stránke, zatiaľ čo skript, ktorý ho oživuje, zmizol. Rovnaký účinok môže mať nástroj na súhlas s cookies, ak blokuje skript CAPTCHA, kým návštevník nesúhlasí. Čo sa stane potom, závisí od servera: ak trvá na platnom tokene, skutoční návštevníci už nemôžu posielať správy a stratené dopyty nikto nezaznamená; ak nie, boty voľne prechádzajú.

Dva ďalšie prípady sa ľahko prehliadnu. Pri reCAPTCHA v3 odznak v rohu ukazuje len to, že skript je niekde na stránke načítaný – možno témou alebo iným pluginom –, zatiaľ čo integrácia v samotnom plugine formulára je vypnutá. A pluginy na ukladanie do vyrovnávacej pamäte môžu uložiť stránku spolu s tokenom vloženým do HTML. Tokeny CAPTCHA platia len niekoľko minút a dajú sa overiť len raz, takže token z vyrovnávacej pamäte u skutočných návštevníkov zlyhá; lákavá „oprava“ v podobe vypnutia kontroly potichu odstráni ochranu.

Zdanie verzus realita
Čo vidíte
  • Widget zobrazuje upozornenie „len na testovacie účely“
  • Odznak v3 je v rohu
  • Widget sa vykreslí a vráti token
  • Spam prestal – ale aj skutočné dopyty
Čo sa môže diať
  • Používajú sa verejné testovacie kľúče a každé overenie uspeje
  • Integrácia reCAPTCHA v plugine formulára je vypnutá
  • Server token nikdy neposiela na overenie alebo ignoruje výsledok
  • Kľúč stránky nie je zaregistrovaný pre doménu alebo vypršali tokeny z vyrovnávacej pamäte

Krátka samokontrola

  1. 1Otvorte stránku s formulárom v súkromnom okne, otvorte vývojárske nástroje prehliadača a v konzole hľadajte chyby skriptu CAPTCHA.
  2. 2Overte, či sa widget skutočne zobrazí – raz pred a raz po prijatí cookie lišty – a či formulár nemožno odoslať, kým chýba.
  3. 3V administrácii poskytovateľa overte, či kľúč stránky obsahuje Vašu ostrú doménu (vrátane variantov, ako je www) a či mu zodpovedajú kľúče vo Vašom plugine formulára alebo kóde – nie kľúče z dokumentácie alebo zo stagingu.
  4. 4V nastaveniach pluginu formulára sa uistite, že integrácia CAPTCHA je zapnutá pre tento konkrétny formulár; pri reCAPTCHA v3 overte, že hranica skóre je vyššia ako 0.
  5. 5Ak máte prístup ku kódu, nájdite overenie na strane servera a skontrolujte, či odoslanie odmietne, keď je odpoveď negatívna alebo token chýba.
  6. 6Vylúčte stránku s formulárom z ukladania celých stránok do vyrovnávacej pamäte alebo zabezpečte, aby sa token vytváral v prehliadači vždy nanovo.
  7. 7Pošlite skutočnú testovaciu správu a overte, že dorazí; kontrolu zopakujte po zmenách témy, pluginov alebo nástroja na súhlas.
Čo kontrola zvonku vidí a čo nie
Testovacie kľúče, značky widgetu bez skriptu, chyby v konzole a zablokované skripty sú viditeľné zvonku – bezplatná kontrola na formexposed.com hľadá presne tieto signály bez toho, aby niečo odosielala. Či Váš server token skutočne overuje, na stránke vidieť nie je; to sa ukáže len v kóde Vášho servera alebo pri skutočnom odoslaní.

CAPTCHA je jedna vrstva, nie celá ochrana. V kombinácii s poľom honeypot, časovou kontrolou a filtrovaním na strane servera nenechá chybná konfigurácia na jednom mieste formulár dokorán otvorený. Ak chcete rýchly prehľad o tom, ako sú na tom Vaše formuláre, zadajte svoju doménu na formexposed.com – správa ukáže, či sú časti Vášho nastavenia CAPTCHA, ktoré sú viditeľné zvonku, v poriadku.