Selecteur de langue

Sécuriser tes formulaires WordPress

Contact Form 7 est une extension WordPress gratuite et très populaire qui permet de créer des formulaires de contact pour un site WordPress sans avoir à coder, dans la philosophie de l’éditeur Gutenberg. Malheureusement, en raison de sa popularité, les sites qui l’utilisent sont la cible de spams. Pour m’en prémunir efficacement sans utiliser de services tiers (Google reCAPTCHA, Akismet Anti Spam), j’utilise Honeypot for Contact Form 7 que je trouve plus léger et adapté à la majorité des usages.

Présentation et configuration du plugin…

Problématiques des anti-spams proposés avec Contact Form 7

Contact Form 7 propose par défaut deux solutions anti-spams :

  • Akismet Anti Spam, développé par Automattic : Un système de filtre qui analyse les entrées du formulaire soumis en comparant ces données à sa base de données de spams connus.
  • reCAPTCHA, développé par Google : Un « CAPTCHA » (Completely Automated Public Turing test to tell Computers and Humans Apart). C’est un test conçu pour distinguer les humains des robots.

Ces deux services sont très efficaces pour limiter les spams, mais ils impliquent deux problématiques :

  • Protection de la vie privée : Les données soumises dans les formulaires sont envoyées vers un prestataire tiers sur lequel tu n’as pas ou peu de visibilité. Si tu es soumis au RGPD, cela pose un problème, car cela implique la collecte et le traitement de données personnelles sans un contrôle clair sur la manière dont ces données sont utilisées.
  • Performances : Akismet et Google reCAPTCHA peuvent ralentir les performances de ton site. Ces services font appel à des requêtes externes et, dans le cas de Google reCAPTCHA, ajoute des fichiers JavaScript supplémentaires au chargement d’une page de ton site. Ces éléments peuvent entraîner des temps de chargement plus longs des pages de ton site et impliquent nécessairement plus de consommation de bande passante pour tes utilisateurs.

Pour remédier à ces problèmes, je préfère utiliser une solution anti-spam qui fonctionne localement sur le site et n’impacte pas l’expérience utilisateur.

Le « honeypot », un anti-spam efficace et léger 🍯

On souhaite un anti-spam efficace et léger. Il doit offrir une protection robuste tout en préservant la légèreté du site. Il doit filtrer les spams sans alourdir les performances du site ou compliquer l’expérience utilisateur. La solution idéale devrait équilibrer la sécurité et la facilité d’utilisation, sans compromettre la vitesse de chargement des pages. Enfin, le plugin que l’on recherche doit-être maintenable et mis à jour régulièrement.

J’ai sélectionné Honeypot for Contact Form 7 qui répond bien à ces exigences. Cette extension permet de protéger ton formulaire avec un honeypot (pot de miel 🍯). Un honeypot dans un formulaire est comme un piège pour les robots spammeurs. On ajoute un champ invisible au formulaire que seuls les robots peuvent voir. Si ce champ invisible est rempli lors de la soumission du formulaire, le serveur sait qu’il s’agit probablement d’un robot et peut bloquer cette soumission pour éviter le spam.

Comment configurer Honeypot for Contact Form 7

Vérifie bien que Honeypot for Contact Form 7 est bien installé et activé. Si tel est le cas, tu devrais voir un nouvel intitulé « Honeypot » dans les sous menus de l’extension Contact Form 7 dans la barre latérale.

Si ce n’est pas déjà fait, je te recommande également d’installer l’extension Flamingo qui permet d’enregistrer, directement dans WordPress, les entrées des formulaires de ton site.

Menu "Honeypot" de l'extension Honeypot for contact form 7
Menu WordPress de l’extension Honeypot for Contact Form 7

Réglages généraux

La page de configuration générale du plugin est assez simple. Par défaut, rien n’est paramétré.

Tu retrouves en bas de page une petite information statistique du nombre de spams bloqués.

Compteur de spams bloqués de Honeypot for contact form 7
Affichage des statistiques de bloquage des spams

Après de nombreux tests sur des sites de toute taille, la configuration la plus efficace à mon sens sans sacrifier l’accessibilité du formulaire est celle-ci :

Page de réglages de l'extension Honeypot for contact form 7
Page de réglages de l’extension Honeypot for contact form 7

Intégrer un Honeypot dans un formulaire

Une fois la configuration globale mise en place, il faut intégrer un honeypot dans le formulaire que tu souhaites protéger. Comme vu précédemment, cela consiste à mettre un champ caché supplémentaire dans ton formulaire Contact Form 7.

Pour ajouter un honeypot à ton formulaire, rends-toi dans la section « Formulaires de contact » du menu « Contact ».

Menu "Formulaires de contact" de l'extension contact form 7
Menu WordPress de l’extension Contact Form 7

Sélectionne le formulaire que tu souhaites configurer.

Lien vers un formulaire de contact dans contact form 7
Sélection d’un formulaire

Un nouveau champ « Honeypot » est disponible, clique dessus pour le configurer et l’insérer dans ton formulaire.

Boutons d'ajout de champs dans contact form 7
Ajout d’un honeypot

Cela ouvre une fenêtre de configuration pour ton champ, je te recommande la configuration suivante, c’est celle qui fonctionne le mieux pour ma part.
Le mot « field » est volontairement mal orthographié.

Fenêtre de configuration du champ "honeypot" de l'extension honeypot for contact form 7
Fenêtre de configuration du honeypot

Pour mieux perturber les bots de spam, je te conseille d’insérer la balise entre deux champs du formulaire, par d’inquiétude, ce champ sera invisible pour un utilisateur humain.

Shortcode du honeypot intégré dans le formulaire
Shortcode du honeypot intégré dans le formulaire

Si tu ne veux pas passer par la configuration, tu peux directement copier ce petit bout de code dans ton formulaire, pense à l’insérer entre les vrais champs du formulaire et non pas à la fin !

<label>[honeypot fieeeld id:fieeeld class:fieeeld wrapper-id:fieeeld-container validautocomplete:true move-inline-css:true nomessage:true timecheck_enabled:true "important field"]</label>Langage du code : HTML, XML (xml)

Surveiller les spams

Ton formulaire est maintenant protégé ! Si tu consultes ton site, tu remarques que le champ que tu as configuré est parfaitement invisible.

Formulaire de contact de Hold my WordPress
Exemple du formulaire de contact sur holdmywp.com

Pourtant, si tu utilises l’extension Flamingo dont je t’ai parlé plus haut, tu vas vite remarquer que le honeypot capture des spams.

Menu "messages entrants" de l'extension Flamingo
Menu WordPress de l’extension Flamingo

Dans l’interface des messages entrants, un nouvel élément « spams » est catégorisé.
Tu y retrouves l’ensemble des spams que tu as reçus, ils sont mis à la corbeille régulièrement de manière automatique.

Exemple du compteur spams reçu et interceptés
Compteur des spams
Exemple de spams reçu et interceptés
Exemple de spams reçus et interceptés

Mon avis sur l’extension Honeypot for Contact Form 7

La sécurisation des formulaires WordPress est très importante pour éviter les spams sur tes formulaires et une gestion fastidieuse de tes prises de contact. Les solutions proposées par défaut avec Contact Form 7, soit Akismet Anti Spam ou Google reCAPTCHA, soulèvent à mon sens des problèmes en matière de confidentialité et peuvent ralentir les performances de ton site.

Dans cette optique, l’utilisation de Honeypot for Contact Form 7 se révèle être une alternative efficace et légère. Cette extension offre une protection contre les spams en intégrant un piège pour les robots spammeurs sans impacter négativement l’expérience utilisateur ni compromettre la vitesse de chargement des pages. Sa configuration simple, sa fiabilité et sa popularité en font une solution que je trouve très pertinente pour préserver l’intégrité de tes formulaires tout en garantissant une utilisation fluide de ton site WordPress pour tes utilisateurs.

Auteur

Quentin Le Duff – Votre partenaire WordPress

Commentaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *