CAPTCHA
A l’origine des CAPTCHAS : le SPAM
Sur le web, il existe une multitude de programmes automatisés qui tentent de réaliser des opérations normalement réservées à des êtres humains : inscription à un service, envoi d’un commentaire sur un blog ou un forum, soumission d’un site web dans un annuaire… Les motivations sont nombreuses pour les hackers : faire du référencement naturel en générant des backlinks en masse automatiquement (technique désormais inefficace), spammer des sites concurrents, générer de faux profils sociaux…
Définition d’un CAPTCHA
On est tous déjà tombés sur un captcha. Généralement, on doit identifier des lettres et des chiffres légèrement dissimulés. Ce genre de méthode est souvent utilisée dans les inscriptions ou les pages de formulaire. Littéralement, le mot captcha est un acronyme signifiant « Completely Automated Public Turing Test To Tell Computers and Humans Apart ». En français on pourrait traduire cette formule par « test de Turing entièrement automatique pour différencier les ordinateurs des humains ». En terme de développement web et mobile, rappelons que le test de Turing est une épreuve servant à déterminer si une intelligence artificielle est capable d’imiter la conversation humaine. Le but du captcha est donc de pouvoir être résolu facilement par un humain tout en empêchant les robots de réussir le test. Par le terme robot, on entend un logiciel informatique capable de réaliser automatiquement certaines tâches répétitives sur internet et en particulier remplir un formulaire dans le but d’envahir ou spamer le site.
Il existe plusieurs types de CAPTCHAS :
- La génération d’une image contenant un texte rendu indéchiffrable par des machines, par la forme des lettres et/ou des chiffres et/ou à cause d’un contraste faible. Une variante consiste à placer le texte devant un fond photographique pour éviter la détection des contours par les logiciels anti-captcha.
- La résolution d’un calcul simple dans une image.
- L’utilisation d’un son, souvent redondant avec les images, pour permettre aux personnes mal voyantes d’accéder au service.
- La réponse à une question à laquelle seul un humain peut répondre.
- Plus récemment, l’identification par un utilisateur d’une partie d’une image. Par exemple : quel est cet animal.
Présence recommandée sur les formulaires d’inscription
Lorsque l’on propose un formulaire d’inscription ou de contact, il est souvent conseillé d’installer un captcha. C’est un outil gratuit et relativement efficace. Il se présente le plus souvent sous la forme d’un plug-in. Une autre utilisation du captcha peut être pour des raisons de rémunération publicitaire. En effet, pour le captcha publicitaire le texte à saisir va être en lien avec un message, une marque, un slogan. L’internaute va ainsi mémoriser le message indiqué. Plus le captcha sera utilisé, et plus le site sera rémunéré par la régie publicitaire. C’est donc une méthode de rémunération utile et simple à mettre en place.
Limites des CAPTCHAS
L’intérêt des CAPTCHAS par génération de chiffres et de lettres dans des images est que le système peut générer automatiquement une multitude de combinaisons. Ce système est donc bien adapté aux sites à forts trafics soumis à de nombreuses attaques. Cependant, des services comme Death By Captchas n’ont aucun mal à déchiffrer ces textes pour quelques centimes, rendant finalement les CAPTCHAS très peu efficaces. De plus, certains CAPTCHAS sont parfois indéchiffrables par les êtres humains eux-mêmes, ce qui nuit à l’expérience utilisateur.Pour les sites de plus petites tailles, une question peut être un excellent moyen de lutter contre le SPAM issu des systèmes entièrement automatisés. Si, de surcroît, cette question est en français, la plupart des spammeurs (souvent anglophones) ne passeront pas cette validation, même en utilisant Google Translate. Par exemple, l’utilisateur doit répondre à la question : « quelle est la couleur du cheval blanc d’Henri IV ».
Les alternatives aux CAPTCHAS
En fonction du type de problème que l’on souhaite éviter (attaques, spams…), d’autres techniques peuvent être mises en œuvre :
Filtres Anti-Spam
On peut utiliser des filtres qui identifient automatiquement les commentaires douteux et les placent dans le dossier indésirable. Sur WordPress, Akismet propose ce service. Bien qu’il existe toujours un risque d’éliminer des commentaires authentiques (faux positifs), la précision du filtre reste néanmoins très élevée.
Champ de formulaire caché
La plupart des robots de spam ont tendance à remplir tous les champs d’un formulaire pour maximiser leurs chances de réussite. Une astuce classique consiste donc à placer un champ de formulaire caché pour un utilisateur humain, et qui ne doit pas être rempli pour valider le formulaire. Ainsi, les robots, en remplissant ce champ, ne réussiront pas à valider le formulaire.
Accès restreint au niveau serveur
Pour se protéger des attaques par force brute, par exemple pour des tentatives d’accès au back-office d’un CMS comme WordPress, il peut être judicieux de protéger le formulaire de login directement par une authentification au niveau du serveur.
Bannissement d’IP
Si le SPAM ou les attaques sont issues de la même adresse IP (vérifiable dans les logs serveur), il peut être efficace de mettre en place des systèmes de bannissement d’ip au niveau serveur (par exemple avec Fail2ban) ou au niveau applicatif (par exemple avec un plugin WordPress).
Double Opt-In
L’inscription automatisée à des listes de destinataires peut être évitée en pratiquant systématiquement le double opt-in.
Pour aller plus loin, nous vous invitons à découvrir notre agence developpement web et à télécharger notre livre blanc « Les 11 commandements d’un site internet qui convertit vos visiteurs en clients »