De wondere wereld van Captcha's
Vandaag de dag zijn er bijna op elke website captcha's te vinden. De afkorting captcha staat voor 'completely automated public Turing test to tell computers and humans apart'. Op een website wordt het enkel gebruikt om te controleren of degene die de website bezoekt een mens of een computer is. Dit is een belangrijk gegeven in de oneindige strijd tegen spam. In deze blogpost overloop ik samen met jullie een aantal verschillende captha-methodes.
Vervormde tekst

De meest gekende vorm van captcha's zijn ongetwijfeld de afbeeldingen met vervormde tekst. De gebruiker krijgt een aantal tekens voorgeschoteld op een bedje van ingewikkelde achtergronden. Deze worden vervormd zodat ze voor een persoon nog te herkennen zijn maar het voor de computers een stuk moeilijker wordt.
Hoewel dit in het beginstadium van captcha's heel goed werkte, zijn er ondertussen verschillende programma's op de markt die deze captcha's kunnen lezen. Op deze website (mirror) kan je een overzicht vinden van verschillende vervormingen en of ze al dan niet al leesbaar zijn door computers. Jammer genoeg is deze site niet altijd bereikbaar maar het is zeker de moeite om eens te bekijken.
Geluidsfragmenten

Een andere methode zijn de geluidsfragmenten. Dit is veiliger dan de eerste methode omdat het moeilijker is om software te schrijven die de gegevens uit een geluidsfragment kan halen. Een ander voordeel van deze methode is dat het beter geschikt is voor mensen met een visuele handicap. Een mogelijk nadeel is dat niet iedereen geluid kan afspelen op zijn computer en dus de captcha niet kan invullen.
Jammer genoeg kan je met PHP geen geluidsfragmenten bewerken met een standaard installatie. Als je deze methode wil gebruiken zal je dus wel wat research moeten doen over hoe je dit kan verwezenlijken.
Deze methode wordt meestal in combinatie gebruikt met de vervormde tekst. Zo geeft reCaptcha bijvoorbeeld de gebruikers de keuze tussen tekst en een geluidsfragment.
Honeypot

Er zijn ook een aantal meer technische mogelijkheden. Zo is het bijvoorbeeld bekend dat robots altijd zoveel mogelijk input velden willen invullen en geen CSS of Javascript uitvoeren. Hierdoor kunnen we de honeypot captcha method gebruiken. Deze methode bestaat erin om een extra input veld aan te maken dat we met behulp van CSS of Javascript verbergen. De robots zullen dit veld gewoon invullen en dus kunnen we concluderen dat wanneer het veld ingevuld is, het gaat om een robot en we de gegevens kunnen negeren.
Doordat deze methode het voorbije half jaar sterk aan bekendheid heeft gewonnen zijn er al enkele programma's op de markt die deze inputvelden proberen te ontwijken aan de hand van hun naam. Je doet er dus goed aan om deze velden zo neutraal mogelijk te benoemen ('email_address', 'full_name', etc.) of om er meer dan één te voorzien in je formulier.
Mensen die zowel CSS als Javascript hebben uitgeschakeld of een browser gebruiken die dit niet ondersteunt (bijvoorbeeld een screenreader) zullen deze invoervelden gewoon zien. Deze mensen kan je helpen door een label te voorzien bij de invoervelden met de tekst 'Vul dit veld niet in'.
Te snel verstuurd

Bijna alle robots zijn gebouwd om zoveel mogelijk te kunnen spammen. Een logisch gevolg is dan ook dat ze formulieren in een razend tempo zullen invullen en versturen. Deze eigenschap kunnen we gebruiken om ze te stoppen.
Bij het aanmaken van het formulier houd je de tijd bij in een variabele. Bij het verwerken van het formulier vergelijk je deze met de huidige tijd. Indien er minder dan 5 seconden tussen de twee zitten heb je te maken met een computer. De minimale tijd tussen de twee metingen moet je natuurlijk afstemmen op de lengte van je formulier.
Andere methodes
Het spreekt voor zich dat er nog duizenden andere methodes zijn en het is dan ook onmogelijk deze hier allemaal te bespreken. Zo zijn er bijvoorbeeld captcha's die je vragen de kat uit de reeks honden te kiezen, een aantal vormen te tellen, een rekensom te maken, een puzzel op te lossen, etc.
Google lanceert binnenkort een nieuwe methode, de zogenaamde 'What's up, bot'. Deze geeft de bezoeker twee dezelfde afbeeldingen maar één van de twee afbeeldingen is gedraaid. De bezoeker moet de niet-gedraaide afbeelding kunnen identificeren om te slagen voor de test. Meer info kan je op deze website vinden.
Heb jij nog ergens een interessante methode gezien? Welke captcha gebruik jij voor je websites? Laat het ons weten in de reacties!



7 reacties tot nu toe
Jelle zei 43 weken geleden:
Af en toe kon er wel eentje het systeem misleiden, maar de meerderheid werd toch tegengehouden.
Meer info op http://snook.ca/archives/other/effective_blog_comment_spam_blocker/
Jan Ottenbourg zei 42 weken geleden:
Rob Frederix zei 42 weken geleden:
Sam Vloeberghs zei 42 weken geleden:
Bijvoorbeeld een dynamisch rekensommetje + een honeypot doet wonderen op sommige van mijn websites.
Massimo Mertens zei 42 weken geleden:
Gisteren ben ik nog op deze captcha gestoten. Om het overzicht te vervolledigen vermeld ik hem hier ook even. http://www.webdesignbeach.com/beachbar/ajax-fancy-captcha-jquery-plugin
Roller Banners Fast zei 23 weken geleden:
Edwin Waelbers zei 22 weken geleden:
Na wat wikken en wegen koos ik voor één van de cafés aan de kant van kathedraal, ik wou naar binnen gaan en plots stond er een kelner voor mijn neus die vroeg of ik eerst een captcha wou intikken, omdat ik anders niet binnen mocht.
Ik heb mij omgedraaid en ik ben het café ernaast binnengelopen voor mijn pintje. Daar vroegen ze geen captcha code.
Spam is niet het probleem van de gebruiker, da's jouw probleem. Die gebruiker mag dan ook niet gepest worden met dingen waar hij niets aan kan doen.
Bovendien zijn sommige captcha's niet aangepast voor blinden en sommige zijn zelfs niet leesbaar voor mensen die wél heel goed kunnen zien.
Elke drempel die niet nodig is een drempel te veel. De kans wordt er alleen maar groter op dat je gebruiker afhaakt.
Captcha's zijn al een tijdje niet meer spam-proof, dus weg met die ondingen.