woensdag 12 september 2012

Captcha's? Alleen als het écht niet anders kan.

Het gebruik van captcha's is de laatste jaren in een grote stroomversnelling gekomen. Je ziet ze bijna overal. Naar mijn mening zijn ze een vervelend onderdeel van een online formulier en moet het gebruik ervan vermeden worden tenzij het écht niet anders kan. Er zijn goede alternatieven.

Wat zijn captcha's?

Captcha's, je kent ze wel, die blokjes met vervormde letters of cijfers aan het eind van online formulieren. Die letters of cijfers moet je dan foutloos na-typen en pas daarna kan je je bij een website aanmelden als klant, of als lid van een forum of zo. Maar ook heel vaak om een contactformulier te 'beveiligen' bijvoorbeeld.
Captcha's worden erg veel toegepast en ook op heel veel kleine websites zie je ze. De bedoeling van zo'n captcha is dus te voorkomen dat spammers en spambots toegang krijgen tot fora, of dat de eigenaar van de website wordt overladen met spam-emails.

Captcha's kosten je klanten

Captcha's werken, technisch gezien, meestal prima. Maar ze hebben ook enkele grote nadelen. En die nadelen komen er vrijwel allemaal op neer dat je als bedrijf met je website een barrière opwerpt voor je klanten. Het lezen van de letters of cijfers in een captcha is vaak lastig, zeker wanneer er ook nog onderscheid gemaakt wordt in hoofdletters en kleine letters (nog afgezien van het feit dat blinden en slechtzienden bijna onmogelijk met captcha's overweg kunnen).

Regelmatig zal de websitebezoeker dus geïrriteerd raken wanneer hij (of zij) een captcha tegenkomt. Waarom zou hij überhaupt die letters willen lezen en intypen? Wanneer de klant in de echte wereld voor de winkel staat zit de deur toch ook niet op slot? Als een potentiële klant je belt dan vraag je toch ook niet als eerste of hij wel serieus geïnteresseerd is in je product? Waarom dan wel online?

Een captcha is naar mijn idee een vervelende onderbreking. En elke onderbreking is, hoe je het wendt of keert, een moment waarop de potentiële klant kan afhaken. Of op z'n minst een heel klein beetje geïrriteerd raken. Captcha's kosten je dus klanten.

"Maar ik krijg zonder captcha's zoveel spam-mails .."

Dat valt in de meeste gevallen wel mee, is mijn ervaring. Láten het er per dag een stuk of 5 zijn. Wat dan nog? Voor de meeste kleinere websites zal het probleem echt niet groter zijn dan dat. Die mails gooi je gewoon in de prullenbak, toch? Volgens mij is dat een betere tactiek dan je échte klanten met een captcha op te zadelen.

Ik geloof stellig dat het opwerpen van wélke barrière dan ook uiteindelijk klanten zal kosten. Iedere website-eigenaar zal dus moeten afwegen welk soort beveiliging hij wil toepassen op de in zijn websites gebruikte formulieren, en welke effecten dat kan hebben op zijn klanten. Als iets niet echt nodig is, doe het dan niet.

Captcha's raad ik sowiese af voor kleine ondernemers. Gooi die paar spam-mailtjes per dag gewoon in je prullenbak en lig er niet wakker van.

Alternatieven voor captcha's

Er zijn goede alternatieven voor captcha's. Een webformulier (contactformulier, inschrijfformulier, aanmeldformulier et cetera) kan met diverse trucjes worden uitgerust die net als captcha's het aantal spam-berichten drastisch kunnen verminderen.

Alternatieven voor captcha's zijn bijvoorbeeld het door een gebruiker laten oplossen van een simpel rekensommetje, of het laten antwoorden op een vraag. Maar feitelijk hebben deze alternatieven het zelfde nadeel als een captcha: er wordt voor de websitebezoeker een barrière opgeworpen. Ze zijn eigenlijk een variant op een captcha, niet echt een alternatief.

Echt alternatief 1: verborgen velden in een formulier

Een echt alternatieve oplossing die ik als programmeur zelf graag gebruik is, en nu wordt het wat technischer, een verborgen veld toevoegen aan een webformulier. Dat veld ziet er uit als een gewoon invoerveld dat door een gebruiker zou moeten worden ingevuld. Een website bezoeker ziet dat veld echter niet omdat het door de website software (css: display:none;) verborgen wordt. Een spambot ziet dat veld wél, en zal proberen het in te vullen. Wanneer het formulier dan wordt verstuurd controleert de software of het verborgen veld is ingevuld. Is het ingevuld, dan is het dus duidelijk dat er een spambot aan het werk is geweest en kan het verwerken van het formulier dus worden afgebroken (en wordt er dus geen spam-mail verstuurd bijvoorbeeld). Een simpele maar effectieve oplossing waar de klant zelf helemaal niets van merkt.

Echt alternatief 2: meet de tijd waarin het formulier is ingevuld

Een andere goed werkende manier is met behulp van een tijdmeting. Het werkt heel simpel: bereken de tijd die de websitebezoeker nodig heeft gehad om het formulier in te vullen. Als die tijd zodanig kort is dat een mens dit nooit voor elkaar zou hebben gekregen, dan is de kans vrijwel 100% dat een spambot het formulier heeft ingestuurd. Immers, een spambot is een stukje software dat razendsnel is.
(let op: doe de tijdmeting server-side en niet met javascript, want een bezoeker kan javascript uitgeschakeld hebben staan).

Captcha's? Alleen als het écht niet anders kan.

Zo zijn er nog wel meer mogelijkheden om spammails te verminderen. Gebruik deze mogelijkheden eerst, voordat je besluit tot klantonvriendelijke captcha's en de varianten daarop. Gebruik captcha's alleen als het écht niet anders kan.


Geen opmerkingen:

Een reactie posten