SilentShield
← Retour au blog
WordPressConfigurationSpamContact Form 7

Configurer un captcha WordPress et bloquer le spam des formulaires, pas à pas

Marc Wagner·7 octobre 2026·5 min de lecture

Ce guide fait passer un site WordPress tout neuf avec Contact Form 7 de « aucune protection » à une protection en couches. Tout a été testé le 7 octobre 2026 avec SilentShield 2.15.14, Contact Form 7 6.2 et WordPress 7.1.2. Les couches décrites ici s’exécutent sur votre propre serveur ; l’API SilentShield, facultative, est présentée dans le guide WordPress.

Une installation toute neuve ne protège encore rien

Tableau de bord SilentShield juste après l’installation : un avis rouge « No form is protected yet » indique que chaque extension de formulaires doit être activée individuellement, énumère Contact Forms 7, WordPress Comments, Password Reset, WordPress Login et WordPress Registration, et propose un bouton « Choose what to protect »
Capture d’écran de l’interface d’administration en anglais (SilentShield 2.15.14, WordPress 7.1.2, testé le 7 octobre 2026).

Une fois l’extension activée, elle fonctionne, mais aucune extension de formulaires n’est activée. Le tableau de bord le dit clairement : « No form is protected yet » (aucun formulaire n’est protégé), suivi des extensions de formulaires qu’il a trouvées sur votre site. Tant qu’une extension de formulaires n’est pas activée, ses formulaires n’affichent aucun champ captcha et rien n’est vérifié.

Tous les réglages ci-dessous se trouvent dans le menu SilentShield de l’administration WordPress.

Étape 1 : choisir la méthode de captcha

Page Protection Settings : le module captcha est activé, avec les méthodes Honeypot (invisible, recommandée), Math Problem et Image Captcha, des champs pour le libellé et le texte indicatif, et un choix de modèles d’affichage
Capture d’écran de l’interface d’administration en anglais (SilentShield 2.15.14, WordPress 7.1.2, testé le 7 octobre 2026).

Ouvrez SilentShield → Protection Settings (Réglages de protection). Trois méthodes sont proposées :

  • Honeypot (par défaut, invisible). Un champ piège est placé hors de l’écran ; les visiteurs ne le voient jamais, alors que les bots qui remplissent tous les champs qu’ils trouvent le remplissent. Un honeypot n’est pas une épreuve : un bot qui lit la page et laisse le piège tranquille passe.
  • Problème de calcul. Le visiteur résout une petite opération (addition, soustraction ou multiplication). Elle est affichée sous forme de texte, de sorte qu’un bot pilotant un vrai navigateur peut la lire.
  • Captcha image. Des caractères déformés que le visiteur recopie. Il nécessite la bibliothèque PHP GD sur le serveur et représente le plus d’efforts pour vos visiteurs.

Commencez par le honeypot si le taux de conversion compte avant tout, et passez au problème de calcul ou au captcha image si du spam arrive malgré tout. Choisissez un modèle, adaptez le libellé si vous le souhaitez, puis cliquez sur Save (Enregistrer).

Étape 2 : activer vos formulaires

Page Forms : l’intégration Contact Forms 7 est activée et affiche les pastilles « Detected » et « Fields detected » ; son formulaire « Contact form 1 » est listé en dessous, les autres extensions de formulaires ne sont pas installées
Capture d’écran de l’interface d’administration en anglais (SilentShield 2.15.14, WordPress 7.1.2, testé le 7 octobre 2026).

Ouvrez SilentShield → Forms (Formulaires). Chaque extension de formulaires a un commutateur ; la pastille à côté indique si l’extension a été détectée sur votre site. Activez Contact Form 7 et la pastille passe de « Disabled » à « Fields detected ». Ce commutateur enregistre immédiatement, il n’y a pas de bouton d’enregistrement à actionner.

Cliquez sur un formulaire individuel sous l’intégration si ce formulaire a besoin de ses propres réglages. Les réglages s’appliquent à trois niveaux (global, intégration, formulaire individuel), et le niveau inférieur l’emporte sur le niveau supérieur.

Des guides pas à pas pour chaque plugin de formulaire : Avada Forms, Elementor Forms, WPForms et le tunnel de commande WooCommerce.

Étape 3 : ajouter les couches de détection

Page Protection Settings, partie inférieure : Timer Protection désactivée, JavaScript Detection activée, Browser Detection activée, Multiple Submission Protection désactivée, Gibberish Detection activée en mode « Monitor only (record, do not block) » avec « Flagged fields required: 3 »
Capture d’écran de l’interface d’administration en anglais (SilentShield 2.15.14, WordPress 7.1.2, testé le 7 octobre 2026).

Plus bas dans Protection Settings, chaque couche a son propre commutateur. Voici l’état après une installation toute neuve :

  • JavaScript detection (activée). Bloque les envois provenant de clients qui n’ont exécuté aucun JavaScript, par exemple un script qui envoie directement à l’adresse de votre formulaire.
  • Browser detection (activée). Vérifie que la requête porte un user agent valide.
  • Timer protection (désactivée). Rejette un envoi qui arrive plus vite qu’un délai minimal après le chargement de la page ; le minimum par défaut est de 500 millisecondes.
  • Multiple submission protection (désactivée). Empêche que la même session de captcha soit envoyée plus d’une fois.
  • Gibberish detection (activée, « Monitor only »). Repère le texte composé de caractères aléatoires, comme « dQgJlwEhfxaLZSKYLy ». En mode de surveillance, elle enregistre ce qu’elle aurait rejeté et ne bloque rien. Observez les résultats pendant un temps, puis passez le mode sur « Block ».

Un envoi est rejeté dès qu’une couche active le signale.

Étape 4 : limitation de débit et règles de contenu contre le spam tenace

Page Advanced Settings : IP-based Rate Limiting et Content Rules (limite d’URL, BBCode, liste noire de mots), tous deux désactivés, et une liste noire d’adresses IP avec les exemples 192.168.1.1 et 10.0.0.0/24
Capture d’écran de l’interface d’administration en anglais (SilentShield 2.15.14, WordPress 7.1.2, testé le 7 octobre 2026).

Ouvrez SilentShield → Advanced Settings (Réglages avancés). Tout y est désactivé par défaut :

  • Limitation de débit par adresse IP. Après 3 tentatives échouées en 5 minutes, une adresse est bloquée pendant 1 heure (valeurs par défaut, toutes réglables). Les adresses sont stockées sous forme de hachages salés.
  • Règles de contenu. Une limite du nombre de liens dans un message, un blocage des liens BBCode ([url=…]) et une liste noire de mots. La liste noire est la liste propre à WordPress sous « Réglages → Discussion » (« Clés de commentaire non autorisées »), si bien que la modifier à un endroit ou à l’autre a le même effet.
  • Liste noire d’adresses IP. Les adresses que vous voulez toujours bloquer, une par ligne.

Étape 5 : tester en visiteur, pas en administrateur

Contact Form 7 après une mauvaise réponse au captcha : le formulaire affiche les valeurs saisies et une zone de réponse mise en évidence avec le texte « Captcha check »
Capture d’écran de l’interface d’administration en anglais (SilentShield 2.15.14, WordPress 7.1.2, testé le 7 octobre 2026).

Les administrateurs et les utilisateurs connectés passent par défaut toutes les vérifications (la liste blanche sur la même page). Un test réalisé pendant que vous êtes connecté ne prouve donc rien. Ouvrez plutôt le formulaire dans une fenêtre de navigation privée :

  1. Envoyez avec une mauvaise réponse au captcha. L’envoi doit être bloqué ; Contact Form 7 affiche la raison dans sa zone de réponse, ici « Captcha check ».
  2. Rechargez le formulaire et envoyez avec la bonne réponse. L’envoi doit passer.

Quel réglage arrête quel type de spam

  • Les scripts qui envoient directement, sans navigateur : JavaScript detection et Browser detection.
  • Les bots qui remplissent tous les champs : le honeypot.
  • Les scripts qui remplissent et envoient un formulaire en quelques millisecondes : Timer protection.
  • Le texte de remplissage fait de caractères aléatoires : Gibberish detection.
  • Le spam de liens : limite d’URL, blocage BBCode et liste noire de mots.
  • La même adresse qui réessaie sans cesse : limitation de débit par adresse IP.

Limites

  • Aucun réglage n’arrête le spam qu’une personne tape à la main.
  • Les bots qui pilotent un vrai navigateur peuvent passer les contrôles côté navigateur. Les règles de contenu et la Gibberish detection regardent plutôt ce qui a été saisi ; l’analyse comportementale est la couche prévue pour ce cas.
  • Sans JavaScript dans le navigateur, un envoi vers un formulaire protégé est rejeté.

Guide de protection des formulaires

Prêt à abandonner le CAPTCHA ?

Protégez vos formulaires — de manière invisible. Sans carte bancaire.