Captcha's, oftewel Completely Automated Public Turing test to tell Computers and Humans Apart, ken je ongetwijfeld als afbeeldingen waar op een irritante manier tekst in is gezet die je moet overtypen. Dit is om te bewijzen dat je een mens bent en geen machine. Waarom? Om spambots te weren. Het nadeel is dat ontwikkelaars steeds slimmer worden, maar spammers worden dat ook. De eerste captcha's die gewoon wat tekst in een afbeelding stopten zijn ook al lang niet meer effectief, omdat de spambots de tekst kunnen ontcijferen. Ondertussen zijn de afbeeldingen steeds vervormder geworden: tekst loopt kronkelend, er lopen lijnen door de tekst heen, er worden verschillende kleuren gebruikt of de afbeelding zit vol ruis. Het komt ook regelmatig voor dat een captcha zó effectief is, dat zelfs een mens niet meer kan lezen wat er staan. Tijd voor wat nieuws!
Een captcha is dus een test om het verschil tussen mens en computer te vinden. Het hoeft dus niet persé een afbeelding te zijn. Je moet zoeken naar dingen die mensen wel kunnen en computers niet: tekst begrijpen of geluid analyseren, bijvoorbeeld. Geluid analyseren is een optie die waarschijnlijk de komende jaren een goede oplossing is, maar er zit een addertje onder het gras; je captcha moet computers afschrikken, geen mensen. Als jij je test te ingewikkeld of ontoegankelijk gaat maken, dan hebben mensen geen zin of mogelijkheid de test te doorstaan. Usability en Accessibility zijn dus erg belangrijk. Voor geluid heb je een mediaspeler en codecs nodig en ook moet je bezoeker niet doof zijn. Best lastig om dit dus foolproof te implementeren.
Tekst is echter wél een uitkomst. Computers kunnen tekst nog niet (goed) begrijpen, dus hier valt mee te spelen. De meeste mensen kunnen de tekst gewoon lezen en blinden gebruiken vaak een screenreader die de tekst opleest. Een paar simpele mogelijkheden:
<strong> of <em> tags gebruikt, zodat mensen met tekstbrowsers of screenreaders ook zien dat dat woord een speciale betekenis heeft.
Andere manieren die soms mensen voor spambots kunnen aanzien:
rel="nofollow" en als die pagina's bezocht worden, dan wordt het IP-adres opgeslagen en vervolgens geblokkeerd. Je hebt hierbij het risico dat mensen die perongeluk die pagina bezoeken geblokkeerd worden, maar ook dat mensen wiens computer deel uitmaakt van een botnet niet meer op je site kunnen komen.
Om het geheel kort samen te vatten: Wees creatief en zoek geen moeilijke oplossingen. Voor de client-siders onder ons is het misschien wat lastig om te doen, omdat je een script moet hebben voor de verwerking, maar het is wel de enige manier om spammers effectief te weren. Ik ben benieuwd of jullie nog meer creatieve oplossingen weten :)