Captcha: robot nebo člověk?
Určitě jste při vyplňování formulářů narazili na nutnost opsat kód z obrázku. Odborně je tento systém nazýván Captcha. V poslední době se mi ale stává, že musím nad obrázkem strávit delší dobu a bádat, co že za kód se v obrázku skrývá. Párkrát se mi stalo, že jsem kód neuhodl a to ani opakovaně (musel jsem stránku obnovit a dostat jiný).
Ukázka problémových kódů

U tohoto obrázku mám problém pouze s rozeznáním sedmičky od jedničky. V tomto případě bych si tipnul sedmičku.

U tohoto obrázku si nejsem jist třetím znakem. Jde o písmeno "J" nebo číslici "7"? Či ještě něco jiného? Vzhledem k tomu, že ostatní jsou písmena, tak se přikláním k "J".

Nejlepší si nechám samozřejmě nakonec. Co je propána ten poslední znak? Kdybych musel, tipnu písmeno "O" nebo číslici "0".
Má Captcha smysl?
Captcha má podle mého smysl do té míry, pokud bezmyšlenkovitě opíši kód a jdu dál. Jakmile začnu nad opisem přemýšlet, váhat, či dokonce nebudu vědět, tak Captcha úplně ztrácí svůj smysl, odrazuje normální lidi a působí kontraproduktivně.
Přístupnost a Captcha
Zatím jsem se zaměřil pouze na použitelnost, pokulhává také přístupnost, protože Captcha je přímo závislá na zraku (a to v řadě případů, přímo ostřížím). Podrobněji Captcha zkoumal už David Špinar v článku CAPTCHA, aneb lze odlišit člověka a robota přístupným způsobem?
Je Captcha neprolomitelná?
A pro co všechno uživatele otravujeme? Chceme odlišit živého uživatele z masa a kostí a naprogramovaného robota. A jak se nám to daří? Na úroveň podobných robotů se můžete podívat např. na stránce univerzity Berkeley. S většinou kódů si jejich robot poradil. A to nejen s těmi lehkými:

Čím Captcha nahradit
Jak z výše uvedeného vyplývá, Captcha trpí problémy. Mně osobně se více líbí logické hádanky typu "kočka a ? (pes)", "černá a ? (bílá)" atd.
Jak Captcha vylepšit
Co ale řada webů nedělá, a je to škoda především u komentářů, je, že musíme kód opisovat pokaždé. A já se ptám proč? Proč nestačí ověřit uživatele pouze jednou?
Další informace o Captcha
Komentáře
První dva obr. zvládám. U třetího ne jenom ten poslední znak. Jsem pro logické hádanky, ale ihned jasné :-) Třeba na Game Blogu je k doplnění kočka a ... Nejdřív jsem zkusil kocour, pak myš a až do třetice vyšel pes. Tohle mi nepřišlo moc ideální (až pozdějí Hannes připsal nápovědu).
Napadá mě vypsat několik znaků cca 30 a uspořádat je do mřížky, tedy asi takto:
XSDFBVK
SDFCVFQ
ERZIUKK
BNMFHKM
a následně napsat slovy pokyn, které znaky má uživatel vybrat. Tím by se to spřítupnilo i pro čtečky. Dostatečná tabulka pokynů a náhodné generování znaků by mělo pousloužit.
Ad: Samozřejmě by se muselo trochu dořešit jednoduchost. Aby uživatelé nemuseli šáhnout po papíru, přepsat si znaky a zašrtat si dle zadání správnou variantu. ;)
Podle mě je CAPTCHA neefektivní metoda a často i problematická. O efektivní ochraně proti komentářovému spamu jsem již psal na
http://www.hellish.cz/weblog/ochrana_proti_komentarovemu_spamu
ad třetí captcha:
to je trošku legrace. Tento obrázek je zašumněn tak, že to vadí jen člověku, zatímco pro robota to není naprosto žádná překážka. Tedy anti-captcha ;)
nedavno (tento tyden) jsem nekde cetl o captcha porovnavani dvou obrazku - co do pristupnosti to take trosku pokulhava, ale dalo by se nad tim zamyslet...
Vtipnou možnost jak obejít Captcha představují erotické weby. Pokud robot dostane Captcha výzvu, obratem ji umístí na pornografické stránky, kde je obvykle dost živých návštěvníků na to, aby mu ji do stanoveného časového limitu vyluštili, třeba výměnou za "free access".
Prijde mi tento cely clanek jako nafouknuty problem o nicem. Pokud clovek alespon trochu rozlisuje mezi typy fontu a nemicha je, je mu jasne, ze pozadovane znaky jsou psany jednim a tim samym fontem. Tedy u prvniho obrazku EKT738, u drruheho KS7TYX, u tretiho AE7B0 (posledni je nula). V kazde zakladni ucebnici programatora-zacatecnika najdete, ze pro odliseni nuly a pismene O (ocko) se nula pri psani proskrtava - presne tak, jak je to na tretim obrazku (predpokladam, ze prave proto autori tohoto obrazku prave kvuli zamenitelnosti techto dvou znaku zvolili tento specificky font). To, ze se tak u spousty jinych fontu nedeje, je bohuzel nestastnou volbou (nebo neznalosti?) jejich autoru.
[8] A kolik % lidí podle vás dojde ke stejným třem kódům jako vy?
[9] Odhaduji 3/4. Např. mě stejné logické úvahy dovedly ke stejnému výsledku. To ale nic nemění na tom, že CAPTCHA rád nemám.
ad 8: mohl byste prosím odhadout, kolik běžných uživatelů internetu čte učebnici programátora začátečníka?
A co takle ASCII art?
|/ / /|
| / |
KO1 .. samozrejme by slo generovat lepsi, nebo resit pomoci libascii
[13] no tak to neni uplne ono -- muselo by to být v <pre> atp
este se zapomel osetrit backslash, ale urcite chapete, co sem mel namysli
Z článku:
----------
Co ale řada webů nedělá, a je to škoda především u komentářů, je, že musíme kód opisovat pokaždé. A já se ptám proč? Proč nestačí ověřit uživatele pouze jednou?
----------
Sám jsem systém Captcha jednou zavedl, uznávám, že jsem (ne-)zavedení dlouho zvažoval, následně vyhrálo zavedení, byť se teď pokoušíme upravit to právě na trochu jiný systém (otázky apod.) Stejně tak jsme rozmýšleli i tuto vlastnost.
Pokud bych byl spammer (a stálo mi to za to), tak si např. jednou vyplním captchu, zachytím si cookies a pak nějakým skriptíkem za pomocí CURLu budu posílat zprávy (plus modifikace dle použité autentifikace atd.).
[15] Nad tím jsem včera také přemýšlel a pokud by se to zkombinovalo ještě třeba se závislostí na identifikaci prohlížeče, tak by to mohlo být OK. Spammer si totiž vždy poradí.
[7] lenze ten kod sa meni s kazdym reloadom stranky, takze je to k nicomu.
[16]Curl jsem zmiňoval právě proto, že co mu nastavíte za hlavičky, to bude používat. Vygeneruje prohlížeč, referer atd., myslím, že to tu není třeba diskutovat.
S větou, že spammer si vždy poradí, mi nezbývá než souhlasit...
Captchu jsem dlouho zavrhoval do té doby, dokud se nějaká šikovná skupina spammerů nerozhodla neustále zaplavovat jeden web, který má ve vyhledávačích poměrně silné postavení. Trvalo zhruba měsíc, než se podařilo odrazit jejich "útoky" a (klepu na dřevo) dali si pokoj.
rel="nowfollow" jim neříkalo vůbec nic - některé vyhledávače to ignorují, tak proč to nevložit, aspoň to zabere někde ;)
Dalším pokusem byla kontrola, jestli návštěvník navštívil stránku a poté odeslal formulář... Po necelém dni to bylo zautomatizovanáno spam robotem :-(
Pokud se tam nastavila pro ně nějaká robotem "nepřekonatelná" překážka, tak si s tím klidně dali tu práci, že to vkládali ručně přes webový prohlížeč.
Abych to zbytečně dlouze nepopisoval - podmínkou bylo rozumně zabránit spamu a dovolit vkládat uživatelům bez omezení - tj. i bez Captcha
Výsledkem je "šílenost", která:
- provádí základní kontroly na úrovni cookies / hlaviček / adresy atd.
- obsahuje IP blacklisty odesilatelů
- sleduje intenzitu vkládání příspěvku z dané IP adresy
- má jakýsi "badwords" seznam
- blacklist domén a odkazů
- počítá odkazy (aby jich nebylo moc) a sleduje poměr vůči textu
- sleduje cílové IP adresu serveru u odkazu, jestli náhodou není také na blacklistu hostingů pro různé neplechy
A nesmím zapomenout na admina, který tam maže spamy a dle svého uvážení spravuje a přidává do zmiňovaných blacklistů.
Takže když to porovnám - pro snadnou implementaci a správu pro běžný web je rozhodně vhodnější Captcha. Zmiňované řešení je naopak komplexnější, takže po určitém čase plnění blacklistů vytvoříte systém, který naopak odrazí i "ruční" spammery.
[18]PS Samozřejmě souhlasím s Vámi uvedeným tvrzením, že Captcha není ono, dnes už se kloním k názoru, že logické otázky jsou vhodnější.
Otázkou je, jak to hodnotí návštěvníci - představte si, že jse na webu renomované velké firmy a u formuláře se Vám objeví otázka "Kolik má kočka nohou?"
Sám si nedovedu představit, jak bych zareagoval. Naopak, když tam vyskočí obrázek, tak už jsou lidé zvyklí "tupě opsat kód".
Další metody (tip od Roberta Pavlíčka u komentářů Davida Špinara) jsou třeba zde: http://www.w3.org/TR/turingtest/
[18] Díky za kvalitní rozbor, já si na Aboutu vystačím s jednoduchým filtrem pár slov a mám pokoj - musel jsem najít to správné slovo.
[19] Však odkaz je také v článku ;-)
Captcha je podle mě jen zdržování návštěvníků stránek. Skutečně mě vždycky naštve, když pravidelně zapomínám pole vyplnit a ukáže se na mě stránka s upozorněním. Když se vrátím zpět, musím celé psát znova. Takové weby pak raději už nekomentuji, protože na to není prostě čas ;)
pochopil bych to třeba při zřizování emailových kont, ale při komentování příspěvku v blogu (hulan.cz) mi to přijde jako ****, nebo možná spíš "hele co ještě umím"
Odborníkem na nečitelnou Captchu je Seznam.cz - http://fulltext.seznam.cz/url.py/addScreen (přidávací formulář), trefit se na 1. pokus je ZÁZRAK. Když přidáváte více stránek , oči zabolí ;-)
[23]No, me prijdou ty Captchy na Seznamu docela citelny, ale zrak je subjektivni smysl a pro nekoho to muze byt dost necitelne. Je fakt, ze program pro rozpoznavani textu by si s tim poradil. Nejdriv si to odfiltruje (u cernobileho obrazku zadny problem), pak da asi oddeleni jednotlivych znaku od sebe. Pak uz si vypocita spoustu priznaku (charakteristik obrazku) a porovnava to s databazi, kteremu znamemu znaku se to nejvice podoba. Pripadne si to zkusi pri ruznych natocenich a pak bere nejpravdepodobnejsi vyledek. Jsem presvedcen, ze a Seznamu to precte spravne v 9-ti pripadech z 10-ti. Zivy uzivatel asi tak dobre score mit nebude.. :p
Další příspěvky
- Aktuální příspěvky
- Novější příspěvky
- Generátor Google Sitemaps [14. června 2005 12:33]
- Velká pravda o HTML a CSS [8. června 2005 16:48]
- Centrum: lokální vyhledávání česky [8. června 2005 0:29]
- Starší příspěvky
- Průběh tvorby nového webu [1. května 2005 0:07]
- Personalizované hledání na Googlu [21. dubna 2005 14:36]
- Radek Karban (Webdesign-reklama.cz) spamuje - dokázáno! [9. dubna 2005 23:13]
- Všechny příspěvky za měsíc červen 2005


