Natrag na blog
Tehnika Objavljeno 27.08.2026 6 min čitanja

CAPTCHA je prisutna – ali ništa ne štiti

Vidljiv widget reCAPTCHA, hCaptcha ili Turnstile malo govori o tome je li obrazac zaštićen. Evo tipičnih pogrešnih konfiguracija i kako provjeriti vlastite obrasce za nekoliko minuta.

Mnogi vlasnici mrežnih stranica dodaju CAPTCHA-u kontaktnom obrascu, vide malu oznaku ili potvrdni okvir i smatraju problem neželjene pošte riješenim. A smeće i dalje stiže. Često je sama CAPTCHA u redu – samo nije povezana ni s čim što bi moglo zaustaviti bota. Ovaj članak opisuje tipične načine na koje reCAPTCHA, hCaptcha i Cloudflare Turnstile postaju ukras te kako provjeriti vlastite obrasce.

Gdje se zaštita doista odvija

Sve tri usluge rade prema istom načelu. Skripta u pregledniku provodi svoje provjere i obrascu predaje token – kratak niz znakova koji kaže „ovaj je posjetitelj prošao”. Token putuje s predajom obrasca na Vaš poslužitelj. Tek se ondje donosi stvarna odluka: Vaš poslužitelj šalje token zajedno s tajnim ključem pružatelju usluge i dobiva odgovor – uspjeh ili neuspjeh, a za reCAPTCHA v3 i ocjenu. Ako nedostaje ijedna karika tog lanca, widget i dalje izgleda potpuno normalno, ali bot koji šalje izravno obrađivaču Vašeg obrasca prolazi ravno kroz njega.

Lanac o kojem CAPTCHA ovisi
1Skripta se učitava
Skripta pružatelja usluge učitana je i smije se izvršavati na stranici obrasca.
2Token je izdan
Preglednik prima kratkotrajni token koji se može upotrijebiti samo jednom.
3Token je poslan
Token se šalje poslužitelju zajedno s poljima obrasca.
4Poslužitelj provjerava
Vaš poslužitelj provjerava token kod pružatelja usluge uz upotrebu tajnog ključa.
5Poslužitelj odlučuje
Predaja se odbija osim ako je odgovor pozitivan (a za v3 i ocjena dovoljno visoka).
Zaštita postoji samo ako svaki korak radi – a odlučujući se odvijaju na poslužitelju, izvan pogleda.

Testni ključ koji sve propušta

Google, hCaptcha i Cloudflare objavljuju posebne testne ključeve kako bi programeri mogli izvoditi automatizirane testove bez rješavanja zagonetki. Uz odgovarajući testni tajni ključ provjera uvijek uspijeva – to im je i svrha. Namijenjeni su lokalnim i pripremnim okruženjima, ali redovito prežive prelazak u produkciju: programer ih zalijepi tijekom izrade, stranica se objavi i nitko ih ne zamijeni. reCAPTCHA barem prikazuje obavijest u widgetu da je samo za testiranje, ali kod nevidljive postavke gotovo nitko ne gleda. Ako su i testni ključ stranice i testni tajni ključ u produkciji, svaka predaja prolazi, bilo da dolazi od čovjeka ili bota; ako je samo ključ stranice testni, provjera umjesto toga ne uspijeva i stvarne poruke mogu biti odbijene.

Token koji nitko ne provjerava

Drugi klasik je poslužitelj koji nikad ne pita pružatelja usluge. Widget radi, token se stvara i šalje, a obrađivač obrasca ga jednostavno zanemaruje. Tipični su izvori ručno pisani obrasci, kopirani isječci koji pokrivaju samo stranu preglednika i napola dovršene postavke dodataka. Blizak slučaj: poslužitelj poziva uslugu provjere, ali provjerava samo je li zahtjev prošao, a ne što odgovor kaže. Ili je prag ocjene za reCAPTCHA v3 postavljen na 0, što prihvaća svaku ocjenu koju usluga može vratiti. Neki obrađivači pri pogrešci dopuštaju prolaz: ako token nedostaje ili provjera ne uspije, svejedno prihvaćaju poruku – a bot jednostavno izostavi token.

Kad se widget zapravo nikad ne učita

Druge pogrešne konfiguracije umjesto toga kvare stranu preglednika. Ako ključ stranice nije registriran za domenu – tipično nakon prelaska iz pripremnog okruženja u produkciju, promjene domene ili nove poddomene – pružatelj usluge odbija izdavati tokene i prikazuje pogrešku u widgetu ili konzoli preglednika. Nakon promjene teme ili ažuriranja dodatka oznake widgeta mogu ostati na stranici, a skripta koja ih pokreće nestati. Alat za privolu za kolačiće može imati isti učinak ako blokira CAPTCHA skriptu dok posjetitelj ne pristane. Što slijedi ovisi o poslužitelju: ako inzistira na valjanom tokenu, stvarni posjetitelji više ne mogu slati poruke i nitko ne primjećuje izgubljene upite; ako ne inzistira, botovi slobodno prolaze.

Još dva slučaja lako promaknu. Kod reCAPTCHA v3 oznaka u kutu pokazuje samo da je skripta učitana negdje na stranici – možda putem teme ili drugog dodatka – dok je integracija u samom dodatku za obrasce isključena. A dodaci za predmemoriranje mogu pohraniti stranicu zajedno s tokenom ugrađenim u HTML. CAPTCHA tokeni vrijede samo nekoliko minuta i mogu se provjeriti samo jednom pa predmemorirani token ne uspijeva za stvarne posjetitelje; primamljiv „popravak” isključivanjem provjere tiho uklanja zaštitu.

Izgled nasuprot stvarnosti
Što vidite
  • Widget prikazuje obavijest „samo za testiranje”
  • Oznaka v3 nalazi se u kutu
  • Widget se prikazuje i vraća token
  • Neželjena pošta je prestala – ali i stvarni upiti
Što se možda događa
  • Upotrebljavaju se javni testni ključevi i svaka provjera uspijeva
  • Integracija reCAPTCHA-e u dodatku za obrasce isključena je
  • Poslužitelj nikad ne šalje token na provjeru ili zanemaruje rezultat
  • Ključ stranice nije registriran za domenu ili su predmemorirani tokeni istekli

Kratka samoprovjera

  1. 1Otvorite stranicu obrasca u privatnom prozoru, otvorite razvojne alate preglednika i u konzoli potražite pogreške CAPTCHA skripte.
  2. 2Provjerite pojavljuje li se widget doista – jednom prije i jednom nakon prihvaćanja natpisa za kolačiće – i može li se obrazac poslati dok widget nedostaje; to ne bi smjelo biti moguće.
  3. 3U administratorskoj konzoli pružatelja usluge provjerite navodi li ključ stranice Vašu produkcijsku domenu (uključujući varijante poput www) te odgovaraju li mu ključevi u dodatku za obrasce ili kodu – a ne ključevi iz dokumentacije ili pripremnog okruženja.
  4. 4U postavkama dodatka za obrasce provjerite je li CAPTCHA integracija omogućena za taj konkretni obrazac; za reCAPTCHA v3 provjerite je li prag ocjene iznad 0.
  5. 5Ako imate pristup kodu, pronađite provjeru na strani poslužitelja i provjerite odbija li predaju kad je odgovor negativan ili token nedostaje.
  6. 6Izuzmite stranicu obrasca iz predmemoriranja cijele stranice ili osigurajte da se token stvara iznova u pregledniku.
  7. 7Pošaljite stvarnu testnu poruku i provjerite stiže li; ponovite provjeru nakon promjena teme, dodataka ili alata za privolu.
Što provjera izvana može i ne može vidjeti
Testni ključevi, oznake widgeta bez skripte, pogreške konzole i blokirane skripte vidljivi su izvana – besplatna provjera na formexposed.com traži upravo te signale bez ikakve predaje. Provjerava li Vaš poslužitelj doista token nije vidljivo na stranici; to se vidi samo u Vašem poslužiteljskom kodu ili pri stvarnoj predaji.

CAPTCHA je jedan sloj, a ne cijela zaštita. U kombinaciji s poljem zamke za botove, vremenskom provjerom i filtriranjem na strani poslužitelja pogrešna konfiguracija na jednom mjestu ne ostavlja obrazac potpuno otvorenim. Ako želite brzu sliku stanja svojih obrazaca, unesite domenu na formexposed.com – izvješće pokazuje jesu li dijelovi Vaše CAPTCHA konfiguracije vidljivi izvana u redu.