Nepříliš chytrý blog Od programování po jezevce

13Čvc/129
Webové stránky

Captcha? Ne, díky!

captcha_logo

Stále častěji jsem nucen opisovat hůře a hůře čitelná písmena z různých ochran proti robotům. Dříve ještě celkem použitelná reCAPTCHA s pěknou myšlenkou se stala něčím, co mě ve formuláři dokáže naštvat. Sám ještě luštím předhazované „šifry“ celkem bravurně, ale jsou mezi námi tací (hůře vidící prarodiče atp.), kterým podobný obrázek totálně znemožní formulář odeslat.

altTo si takhle člověk brouzdá po nějakém webu, najde zajímavý článek, který chce okomentovat. Pro to se ale musí zaregistrovat. OK, co se dá dělat. V tom na něj vyskočí registrační formulář a v něm tahle nádhera.

Samozřejmě má nutkání rovnou zavřít záložku prohlížeče a na web se vykašlat.

Jak to dělat jinak?

Proč vůbec někoho zatěžovat něčím, jako je registrační formulář? Brouzdající člověk mohl v klidu využít přihlášení přes Facebook, Twitter, Google, OpenID, … V dnešní době už je tohle tak samozřejmá možnost, že znám „extremisty“, kteří úplně rezignovali na nějaké registrace a na webech se nepřihlašují jinak, než přes sociální sítě. Takže tohle je určitě řešení. Co když ale chcete vyhovět i návštěvníkům bez sociálních sítí nebo chcete jen zabezpečit formulář pro odeslání mailu? Existují řešení, která uživatele neobtěžují.

Jak to dělat úplně jinak?

Věřte nebo ne, ve valné většině případů stačí jedno vstupní pole se stálým textem, který uživatel vyplní.

Vyplňte „nospam“: <input name="x_url">

Tím jsem ale úplně nedodržel to obtěžování uživatele, že? No dobrá, rozšíříme náš kód o kousek JavaScriptu.

<noscript>Vyplňte „nospam“: <input name="x_url"></noscript>
<script type="text/javascript">
document.write('<input type="hidden" name="x_url" value="no' + 'spam">');
</script>

Nyní už naprostou většinu uživatelů potěšíme formulářem bez opisování obludných znaků, sčítání a podobných nepříjemností. Zároveň máme solidní ochranu proti univerzálním robotům (jelikož je pro ně výhodnější zaspamovat 100 dalších formulářů místo toho, aby se snažili interpretovat JavaScript na vaší stránce). Pokud by vám chtěl opravdu někdo škodit, obejde tuto ochranu levou zadní. Ale v tomhle případě se podle mě opravdu vyplatí nehasit požár, který nehoří, a nechat váš web maximálně přístupný.

Tato metoda patří mezi takzvané pasivní ochrany a již v roce 2006 se o ní zmiňoval Jakub Vrána. Pro pobavení přidávám prezentaci s názvem Worst Captchas of All Time.

  • Moje řeč. Ačkoli obrázky v drtivé většině také přelouskám levou zadní stejně captchu nemůžu vystát. A skrytý formulář + JS je kouzelné řešení, které rád používám :)

  • Trochu v tom poznávám svůj pět let starý článek :)

    http://ondrej.mirtes.cz/…-formularich

  • Ve které jsem se inspiroval ještě starším článkem Jakuba Vrány, který zmiňuješ :))

    • Jan Voráček

      Jojo, chtěl jsem ten článek trochu vytáhnout :)

  • Přesně tento způsob používám na svém weblogu a prošly zatím jen 2 spamy z více než 5000.

    Vyplatí se též u pole s kontrolní otázkou nastavit atribut „name“ na hodnotu „email“. Spamroboti pak vyplňují do pole e-mail.

  • A co takhle pod textové pole dát tlačítko „Náhled komentáře“, po kliknutí se komentář zobrazí a pak se uloží tlačítkem „Odeslat“. Myslím, že tam by šla dát lepší ochrana se stejným uživ. komfortem.

  • sdg

    test

  • Děkuji za sdílení. Opravdu si toho vážím to, že jste se s námi podělil jako informativní místo, skvělé tipy a velmi snadno pochopitelné.

  • David Čech

    <!--texy-->Jak je to aktuální k roku 2017? Pořád to stačí?