
Comment protéger vos formulaires Drupal contre les bots ? Revue du module Captcha
Lors de la publication d'un formulaire sur votre site web, vous devez être conscient qu'à un moment donné, les spambots le trouveront. C'est l'un des plus grands fléaux de l'Internet moderne. Le module Captcha vous protégera contre de telles situations.
Plus loin dans l'article, je présenterai les instructions pour utiliser le module et ses possibilités potentielles. C'est une connaissance essentielle que nous utilisons en pratique dans le cadre des services de développement Drupal fournis par Droptica.
Dates
La première version du module a été publiée en mai 2005 pour Drupal 4. Le développement de la version pour Drupal 8 a pris de nombreuses années. Les premiers essais ont eu lieu en 2013, mais la première d'une version stable n'a eu lieu qu'au début de 2020.
Popularité du module
Captcha est un module populaire et apprécié. Selon les statistiques officielles, il est utilisé par presque 300 000 sites web basés sur Drupal. La dernière version de la branche 8.x-1.x est installée sur 80 000 sites. La popularité du module diminue progressivement, probablement en raison du passage à d'autres solutions plus modernes.
Créateurs du module
Le module Captcha a cinq mainteneurs ; ce sont Jakob Perry (Acquia et Lanfest), Fabiano Sant’Ana (Chuva Inc.), Lachlan Ennis (Expert1 Pty Ltd), Naveen Valecha (Acquia) et Andrii Podanenko (Open Y et ITCare). Ils sont tous des membres très actifs et importants de la communauté Drupal. Le sponsor officiel du module est la société Chuva Inc. Le dépôt de code consiste en 606 commits par près de 120 utilisateurs.
À quoi sert le module ?
Le module Captcha est utilisé pour protéger les formulaires contre le spam ; il vous aide à vous assurer que le visiteur du site n'est pas un robot Internet. Il existe de nombreuses façons de vérifier l'authenticité de l'utilisateur (comme reCaptcha) – elles sont fournies en tant que modules dépendants. Par défaut, vous pouvez utiliser un simple défi mathématique qui verrouillera le formulaire si la personne ne parvient pas à additionner deux nombres.
Déballage
Vous pouvez télécharger le module Captcha sur https://www.drupal.org/project/captcha.
Après avoir activé le module Drupal, la seule étape nécessaire est de sélectionner les formulaires que vous souhaitez protéger. Accédez aux paramètres du module en sélectionnant “Configuration → Personnes → Paramètres du module CAPTCHA“ et sélectionnez l'onglet “Paramètres du formulaire“. Trouvez votre formulaire là et activez-le en cliquant sur le bouton “Activer“.
Si le formulaire n'est pas sur la liste, ajoutez-le en cliquant sur le bouton “Ajouter un point captcha“ et entrez le form_id. L'effet du module pour le formulaire de connexion de l'utilisateur ressemble à ceci :
Utilisation du module
Le module Captcha a plusieurs paramètres avancés qui vous permettent de personnaliser la protection de vos sites web de manière plus efficace. Les plus importants sont :
- Type de défi par défaut - la possibilité de choisir le type de “piège“, par défaut il s'agit d'une opération mathématique. Les modules externes fournissent d'autres types.
- Défi par défaut sur les formulaires non répertoriés - une solution radicale qui active la protection pour tous les formulaires non répertoriés dans la liste “Paramètres du formulaire“.
- Ajouter des liens d'administration CAPTCHA aux formulaires - une option très utile qui vous permet de gérer le type de sécurité directement depuis le formulaire donné. Cela fait gagner beaucoup de temps sur des sites web compliqués.
- Mise en cache du placement CAPTCHA - effacement du cache, utile en cas de problèmes avec les formulaires.
- Ajouter une description au CAPTCHA - ajout d'une description expliquant pourquoi l'utilisateur doit prouver qu'il n'est pas un bot.
- Validation sensible/insensible à la casse - détermination de la prise en compte ou non de la distinction entre les majuscules et minuscules dans la résolution de l'“énigme“ présentée à l'utilisateur.
- Persistance - la possibilité de désactiver la protection dans certains cas spéciaux, par exemple, lorsque l'utilisateur a déjà confirmé son authenticité.
Hooks et intégrations
Captcha fournit deux hooks pour intégrer des modules Drupal qui vérifient les utilisateurs. Ce sont :
- hook_captcha() - le hook principal utilisé pour définir vos propres sous-modules ; il a une structure connue de Drupal 7 (il transmet la variable $op contenant le type de l'opération actuellement effectuée).
- hook_captcha_placement_map() - hook optionnel spécifiant l'endroit dans le formulaire qui doit être modifié.
C'est là que réside le véritable pouvoir du module. Sur drupal.org, vous pouvez trouver un certain nombre de projets qui implémentent diverses méthodes de vérification :
- reCAPTCHA - pour prendre en charge les services de vérification les plus populaires disponibles, fournis par Google.
- Rafraîchissement de l'Image CAPTCHA - ce module fait partie intégrante de Captcha pour Drupal 8 ; pour Drupal 7, il fonctionne comme un projet séparé. Il introduit un widget avec une image à partir de laquelle il faut retranscrire un texte.
- Pack CAPTCHA (version alpha uniquement) - une collection de “pièges“ très intéressants pour les bots, comprenant compléter une lettre ou un mot manquant dans une phrase.
- CAPTCHA Texte (Drupal 7 uniquement) - intégration avec le site textcaptcha.com.
- Captcha Riddler - vous permet de définir votre propre série d'énigmes pour l'utilisateur.
- CAPTCHA Caché (Drupal 7 uniquement) - trompe les bots en insérant un champ invisible qui bloque l'envoi du formulaire.
- CAPTCHA après (Drupal 7 uniquement) - n'exécute Captcha qu'après que l'utilisateur a soumis le formulaire plusieurs fois.
- KeyCAPTCHA (Drupal 7 uniquement) - intégration avec le site keycaptcha.com.
- CAPTCHA Déplaçable (Drupal 7 uniquement) - un puzzle glisser-déposer, aucune dépendance à des sites externes.
Résumé
Les principaux arguments en faveur du module sont l'efficacité et la simplicité de mise en œuvre. Il est parfait pour lutter contre les spammeurs Internet.
Nous l'utilisons également dans notre agence Drupal comme un outil qui s'adapte à tous les formulaires et ne nécessite pas de codage supplémentaire.