Een visuele captcha is een afbeelding die een moeilijk te lezen letter- of cijferreeks bevat die je moet overtypen om te bewijzen dat je geen spambot bent.
Deze antispam-techniek wordt veel gebruikt bij het reageren op een blog, contactformulieren of in aanmeldingsprocedures. Het probleem is het grootst voor blinden en slechtzienden maar ook dyslectici hebben het er moeilijk mee. Het toegankelijkheidsprobleem overstijgt het gebrek aan alt-tekst want zo een visuele captcha leidt ertoe dat deze bezoekers een formulier niet kunnen verzenden en dus niet reageren op een blogpost, geen vraag stellen via het contactformulier en geen twitter-account aanmaken. In dit artikel geven we een aantal mogelijke alternatieven voor de visuele captcha.
Geen captcha
Jij wil geen spam ontvangen. Om dat te bereiken, val je elke bezoeker lastig met die onleesbare letters die ze moeten overtypen. Je lost jouw spam-probleem op door een probleem te creëren voor al je bezoekers met goede bedoelingen. Alleen al vanuit het standpunt van gebruiksvriendelijkheid is dat geen goed idee. Zoek dus naar een spam-beveiliging die je bezoekers niet pest. Die zal misschien iets minder doeltreffend zijn dan de visuele captcha, maar beter twee spam-berichtjes in je mailbox dan twee klanten die hun bestelling in je webshop niet voltooien.
Honeypot
Spam-bots zullen proberen alle velden van een formulier in te vullen. Voeg dus een veld toe dat de bezoeker niet ziet en ook niet in hoeft te vullen. Wordt het toch ingevuld, dan heb je bijna zeker met een spammer te maken. Bij de formuliervalidatie doe je dus het omgekeerde van wat je normaal doet: enkel accepteren als het veld leeg is.
Noot: dingen verbergen, is niet altijd betrouwbaar. Wie CSS uitschakelt en gebruikers van Sommige screenreaders zullen iets met CSS eigenschap display:none
toch te zien krijgen. Geef dus ook dit veld een label waarin je uitlegt dat de gebruiker dit veld mag overslaan als hij het toch zou tegenkomen.
Deze techniek is vrij betrouwbaar totdat de spammer heeft gevonden welk veld de honeypot is. Laat het veld er daarom zo normaal mogelijk uitzien voor een script dat code analyseert: geef het dezelfde attributen als alle andere invoervelden, zet het niet als laatste veld in het formulier, wees bij het verbergen van het veld iets creatiever dan class="hidden" of class="invisible" en noem het honeypot-veld niet name="honeypot" of name="leaveBlank". Maak het juist "aantrekkelijk" door het bijvoorbeeld name="email" te noemen en zet er ook gerust een * bij.
<div class="formfield grapje">
<label for="mail2">
Dit veld hoeft u niet in te vullen*
</label>
<input type="text" name="mail2" id="mail2" />
</div>
.grapje { display: none; }
Genoeg tijd
Mensen doen er langer over dan robots om een formulier in te vullen. Tijd is geld voor de spammer dus de bot wil zo snel mogelijk tewerk gaan. Juist dit onderscheidt "hem" dus van een mens. Weiger een formulier te versturen binnen pakweg tien seconden na het laden van de pagina.
Akismet
Akismet is voor bloggers onmisbaar om spam tegen te houden. Er komt geen captcha aan te pas. Ze onderzoeken elk bericht voordat het in jouw database terechtkomt en markeren het al dan niet als spam. Het is beschikbaar voor veel systemen zoals Wordpress en Fork CMS en er is zelfs een API. Het is gratis voor persoonlijk gebruik.
E-mails filteren
Deze techniek is het best geschikt voor contactformulieren: configureer je e-mailprogramma of webserver zo dat hij aan goede spam-filtering doet. Zo vermijd je alle spam in je mailbox, niet enkel die van je contactformulier. Dan hoef je echt geen captcha meer op je bezoekers af te sturen.
Te ingewikkeld? Neem dan een gmail-adres en laat daar je berichten toekomen. Gmail is verdomd goed in het filteren van spam.
Alternatief voor de visuele captcha
De vorige technieken hebben de voorkeur omdat een bezoeker met goede bedoelingen niet eens merkt dat er een spam-beveiliging op zit en er dus ook geen tijd mee verliest of frustratie door oploopt. Nu volgen enkele alternatieven die wel een extra handeling vragen van de bezoeker.
E-mailverificatie
Stuur een mail met daarin een link die men moet aanklikken om de transactie te bevestigen. Deze techniek is prima geschikt bij het registreren op een website. Wie surft op het web, zal ook wel over een e-mailadres beschikken. Deze techniek is wellicht minder geschikt bij het posten van een reactie op een blog of bij een contactformulier. Ze wordt heel veel gebruikt bij "ik ben mijn paswoord vergeten" dus zal het wel redelijk veilig zijn.
Verificatie via telefoon
Websites sturen ook wel eens een SMS met een code die men in de webpagina moet invullen, maar dit lijkt ons al iets delicater. Wil iedereen zijn telefoonnummer aan om het even welke site geven?
Stel een vraag
Je kan een extra vraag aan je formulier toevoegen waarvan je vrij zeker bent dat de bezoeker het antwoord weet, maar die de spambot niet begrijpt. Vaak gebruikt men een rekensom of een tekstuele vraag.
Deze techniek is betrouwbaar totdat de spambot de vraag wel begrijpt en de antwoorden kan geven. Dit is ook geen goede techniek als de vraag te moeilijk is voor de bezoeker of wanneer hij niet begrijpt waarom hij deze vraag moet beantwoorden. Die heeft immers meestal niets te maken met het doel van het formulier dat hij aan het invullen is.
Audiocaptcha
Om het probleem van de visuele captcha op te lossen voor blinden en slechtzienden (niet voor doofblinden) geven meer en meer websites de mogelijkheid om de cijfer- of letterreeks te beluisteren in plaats van visueel te ontcijferen.
Perfecte beveiliging bestaat helaas niet
Elke beveiliging zal vroeg of laat gekraakt worden. Als je site populair genoeg is bij spammers zullen ze daar werk van maken. In sommige gevallen loont het zelfs om mensen te betalen om de visuele captcha's op te lossen zodat de bot kan bewijzen dat hij een mens is. Als je een bescheiden Nederlandstalig weblog hebt, is de kans niet zo groot dat ze jouw site uitpikken. En als je de standaardformuliertjes van je CMS wat verandert, ben je ook al veel minder kwetsbaar.
Conclusie
Ontoegankelijke anti-spamtechnieken ontzeggen de toegang tot essentiële onderdelen van een website. Captcha's zijn ontoegankelijk:
- als je moet kunnen zien om de code in de afbeelding te ontcijferen,
- als je de muis moet hanteren om de poezen aan te klikken,
- als er wel een audio-alternatief is maar onverstaanbaar zoals bij reCaptcha,
Gebruik een van de eerste technieken als u teveel spam krijgt. U kunt kiezen voor een vraag die iedereen begrijpt en kan invullen, zoals een rekensom. Als u kiest voor een audiocaptcha, test dan of hij verstaanbaar is. En als dit alles niet lukt, vermeld dan een telefoonnummer en e-mailadres waar mensen terecht kunnen die het formulier niet kunnen invullen. En euh, voorzie dat e-mailadres dan van een goede spam-beveiliging.
Bronnen
- CAPTCHA-less Security (Karl Groves, april 2012)
- Beyond CAPTCHA: No Bots Allowed!
- Spam-free accessible forms (WebAIM)
- Ook het W3C heeft een document over Inaccessibility of captcha
Reacties
Reageer als eerste