CAPTCHA je tam – a ne ščiti ničesar
Viden gradnik reCAPTCHA, hCaptcha ali Turnstile malo pove o tem, ali je obrazec zaščiten. Tu so tipične napačne nastavitve in kako v nekaj minutah preverite svoje obrazce.
Veliko lastnikov spletnih mest kontaktnemu obrazcu doda CAPTCHA, vidi, da se pojavi majhna značka ali potrditveno polje, in težavo z neželeno pošto šteje za rešeno. Potem pa smeti še naprej prihajajo. Pogosto je sama CAPTCHA v redu – le povezana ni z ničimer, kar bi lahko ustavilo robota. Ta prispevek opisuje tipične načine, kako reCAPTCHA, hCaptcha in Cloudflare Turnstile postanejo okras, in kako preverite svoje obrazce.
Kje se zaščita dejansko zgodi
Vse tri storitve delujejo po istem načelu. Skripta v brskalniku izvede svoja preverjanja in obrazcu preda žeton – kratek niz, ki pravi »ta obiskovalec je opravil«. Žeton z oddajo obrazca potuje na Vaš strežnik. Šele tam se zgodi prava odločitev: Vaš strežnik pošlje žeton skupaj s skrivnim ključem ponudniku in dobi odgovor – uspeh ali neuspeh, pri reCAPTCHA v3 pa tudi oceno. Če kateri koli člen te verige manjka, je gradnik še vedno videti povsem običajno, robot, ki pošilja neposredno na Vašo obdelavo obrazca, pa gre naravnost skozi.
Testni ključ, ki spusti vse skozi
Google, hCaptcha in Cloudflare objavljajo posebne testne ključe, da lahko razvijalci izvajajo avtomatizirane teste brez reševanja ugank. Z ustrezno testno skrivnostjo preverjanje vedno uspe – to je ves njihov namen. Namenjeni so lokalnim in testnim okoljem, vendar redno preživijo selitev v produkcijo: razvijalec jih med gradnjo prilepi, spletno mesto gre v živo in nihče jih ne zamenja. reCAPTCHA v gradniku vsaj prikaže obvestilo, da je namenjena le testiranju, a pri nevidni nastavitvi skoraj nihče ne pogleda. Če sta v živo testni ključ spletnega mesta in testna skrivnost, gre skozi vsaka oddaja, ne glede na to, ali prihaja od človeka ali robota; če je testni le ključ spletnega mesta, preverjanje namesto tega ne uspe in prava sporočila so lahko zavrnjena.
Žeton, ki ga nihče ne preveri
Druga klasika je strežnik, ki ponudnika nikoli ne vpraša. Gradnik teče, žeton se ustvari in odda, nato pa ga obdelava obrazca preprosto prezre. Tipični viri so ročno napisani obrazci, kopirani izrezki, ki pokrivajo le stran brskalnika, in napol dokončane nastavitve vtičnikov. Bližnji sorodnik: strežnik storitev za preverjanje sicer pokliče, vendar preveri le, ali je zahteva uspela, ne pa, kaj pravi odgovor. Ali pa je prag ocene za reCAPTCHA v3 nastavljen na 0, kar sprejme vsako oceno, ki jo storitev lahko vrne. Nekatere obdelave tudi »odpovejo odprto«: če žeton manjka ali preverjanje ne uspe, sporočilo vseeno sprejmejo – robot pa žeton preprosto izpusti.
Ko se gradnik nikoli zares ne naloži
Druge napačne nastavitve namesto tega pokvarijo stran brskalnika. Če ključ spletnega mesta ni registriran za domeno – tipično po selitvi iz testnega okolja v produkcijo, spremembi domene ali novi poddomeni – ponudnik zavrne izdajo žetonov in v gradniku ali konzoli brskalnika prikaže napako. Po zamenjavi teme ali posodobitvi vtičnika so lahko oznake gradnika še vedno na strani, skripte, ki ga oživi, pa ni več. Orodje za privolitev v piškotke ima lahko enak učinek, če skripto CAPTCHA blokira, dokler obiskovalec ne privoli. Kaj se zgodi nato, je odvisno od strežnika: če vztraja pri veljavnem žetonu, pravi obiskovalci ne morejo več pošiljati sporočil in izgubljenih povpraševanj nihče ne opazi; če ne vztraja, roboti prosto prehajajo.
Dva primera je lahko spregledati. Pri reCAPTCHA v3 značka v kotu kaže le, da je skripta naložena nekje na strani – morda s temo ali drugim vtičnikom – medtem ko je integracija v samem vtičniku za obrazce izklopljena. Vtičniki za predpomnjenje pa lahko stran shranijo skupaj z žetonom, vdelanim v HTML. Žetoni CAPTCHA veljajo le nekaj minut in jih je mogoče preveriti le enkrat, zato predpomnjen žeton za prave obiskovalce ne uspe; mamljiv »popravek«, da se preverjanje izklopi, pa tiho odstrani zaščito.
- Gradnik prikazuje obvestilo »samo za namene testiranja«
- Značka v3 je v kotu
- Gradnik se prikaže in vrne žeton
- Neželena pošta je prenehala – a tudi prava povpraševanja
- V uporabi so javni testni ključi in vsako preverjanje uspe
- Integracija reCAPTCHA v vtičniku za obrazce je izklopljena
- Strežnik žetona nikoli ne pošlje v preverjanje ali prezre rezultat
- Ključ spletnega mesta ni registriran za domeno ali pa so predpomnjeni žetoni potekli
Kratko samopreverjanje
- 1Stran z obrazcem odprite v zasebnem oknu, odprite razvijalska orodja brskalnika in v konzoli poiščite napake skripte CAPTCHA.
- 2Preverite, ali se gradnik dejansko prikaže – enkrat pred sprejetjem pasice za piškotke in enkrat po njem – in da obrazca ni mogoče poslati, dokler manjka.
- 3V skrbniški konzoli ponudnika preverite, ali ključ spletnega mesta navaja Vašo živo domeno (vključno z različicami, kot je www), in ali se ključi v Vašem vtičniku za obrazce ali kodi z njim ujemajo – ne ključi iz dokumentacije ali testne nastavitve.
- 4V nastavitvah vtičnika za obrazce se prepričajte, da je integracija CAPTCHA omogočena za ta določeni obrazec; pri reCAPTCHA v3 preverite, ali je prag ocene nad 0.
- 5Če imate dostop do kode, poiščite preverjanje na strežniku in preverite, ali oddajo zavrne, ko je odgovor negativen ali žeton manjka.
- 6Stran z obrazcem izključite iz predpomnjenja celotne strani ali poskrbite, da se žeton v brskalniku ustvari na novo.
- 7Pošljite pravo testno sporočilo in preverite, ali prispe; preverjanje ponovite po spremembah teme, vtičnikov ali orodja za privolitev.
CAPTCHA je en sloj, ne celotna zaščita. V kombinaciji s past-poljem, preverjanjem časa in filtriranjem na strežniku napačna nastavitev na enem mestu ne pusti obrazca na stežaj odprtega. Če želite hitro sliko o tem, kje so Vaši obrazci, vnesite svojo domeno na formexposed.com – poročilo pokaže, ali so deli Vaše nastavitve CAPTCHA, ki so vidni od zunaj, v redu.