Spam voorkomen via CAPTCHA

Via allerhande (automatische) 'bots' proberen spammers en hackers, je site binnen te dringen en/of formulieren op je website te 'vervuilen'. 

Een veel gebruikte manier om dit tegen te gaan is een CAPTCHA (of test) toe te voegen aan je webformulier.

Een captcha (een afkorting voor "Completely Automated Public Turingtest to tell Computers and Humans Apart") is een reactietest die in de gegevensverwerking wordt gebruikt om te bepalen of er al dan niet sprake is van een menselijke gebruiker.

Wij gebruikten vooral Mollom hiervoor, maar helaas werd op 27 april 2017 de 'End of Life' aangekondigd van deze dienst. Mollom was een "intelligente dienst" van de vader van Drupal (Dries Buytaert) die spam via webformulieren voorkomt. 

UPDATE : Sinds 2 april is het helemaal gedaan met Mollom.

Op de website van Mollom raadt men als alternatief reCAPTCHA of Honeypot aan. Voor Drupal is er echter nog een derde lichtgewicht alternatief dat zeker het vermelden waard is nl. Antibot.

Al deze modules hebben hun voor- en nadelen. Ik zet de belangrijkste even op een rij.

reCAPTCHA

reCAPTCHA van Google
reCAPTCHA voorbeeld

Bots worden herkend adhv verschillende parameters. Als je bijv. een formulier té snel invult, of als er geen muiskliks geregistreerd worden dan krijg je een 'challenge' voorgeschoteld die eenvoudig is om op te lossen voor mensen maar onmogelijk is voor bots.

Voordelen:

  • Eenvoudig in gebruik
  • Herkenbaar door bezoekers
  • Verschillende weergaveopties
  • Wordt steeds intelligenter
  • Je helpt om boeken te digitaliseren of kaarten te verbeteren

Nadelen:

  • Zichtbaar voor de bezoeker
  • Extra stap om te bevestigen dat je geen bot bent.
  • Pagina cache op een drupal website wordt uitgeschakeld

Honeypot

Drupal Honeypot

Honeypot herkent bots aan de hand van de snelheid waarmee een formulier wordt ingevuld. Een formulier met de hand invullen duurt uiteraard langer dan automatisch invullen door een bot. Bovendien staat voegt honeypot aan een formulier een veld toe dat er normaal uitziet voor bots maar onzichtbaar is voor de gebruiker. Als dat veld ingevuld wordt dan is er met zekerheid een bot aan het werk geweest en wordt het resultaat niet opgeslagen.

Voordelen:

  • Eenvoudig in gebruik
  • Onzichtbaar voor de bezoeker
  • Herkent bots adhv een veld dat alleen bots kunnen zien

Nadelen:

  • Sommige bots herkennen verborgen velden en omzeilen daardoor de beveiliging
  • Pagina cache op een drupal website wordt uitgeschakeld

Antibot

Drupal antibot

Antibot doet zijn werk door actief te controleren of er een muis gebruikt wordt op de pagina van het formulier of dat er mbv de tab-toets van veld naar veld gesprongen wordt. Dit werkt met javascript en het formulier wordt pas weergegeven als de bezoeker javascript heeft aan staan in zijn browser. De makers beweren dat dit betrouwbaarder is dan Honeypot en net zoals bij die module is er geen extra gebruikersinteractie nodig in tegenstelling tot bij reCaptcha.

Voordelen:

  • Eenvoudig in gebruik
  • Onzichtbaar voor de bezoeker
  • Zeer lichtgewicht
  • Zou beter werken dan Honeypot

Nadelen:

  • Javascript moet aan staan in de browser. (Dit is verwaarloosbaar)

 

Conclusie:

Het is moeilijk om de efficiëntie van deze verschillende modules tegenover elkaar te meten. Als ik mag kiezen, dan geef ik op dit moment de voorkeur aan antibot voor Drupal 7 en Drupal 8 websites. De hoofdreden daarvoor is dat antibot onzichtbaar is voor de bezoeker.
Al is waarschijnlijk reCAPTCHA het best gewapende produkt naar de toekomst toe.

Labels