SilentShield

Protéger les formulaires WordPress avec SilentShield

L’extension officielle « SilentShield – Captcha & Anti-Spam » intègre le script et vérifie chaque envoi sur votre serveur — sans code de votre part. Ce guide ne mentionne que ce que nous avons testé nous-mêmes avec l’extension.

Voir l’extension dans le répertoire WordPress

Prérequis

  • WordPress 5.2 ou version ultérieure et PHP 7.4 ou version ultérieure (selon les indications de l’extension dans le répertoire WordPress).
  • Votre site fonctionne en https. Sans contexte sécurisé, le navigateur ne fournit aucune fonction Web Crypto, aucun nonce n’est créé et les formulaires protégés ne peuvent pas être envoyés.
  • Un compte SilentShield avec une clé pour votre domaine. Les sous-domaines comme www. ou staging. sont inclus.

Quels formulaires peuvent être protégés

Testé le 07/10/2026 avec l’extension 2.15.14 et WordPress 7.1.2 : un humain passe et est confirmé sur le serveur, un envoi sans navigateur est rejeté.

FormulaireVersion testéeStatut
Contact Form 76.2Fonctionne
Fluent Forms6.2.15Fonctionne
Commentaires WordPress7.1.2Fonctionne
Connexion WordPress7.1.2Fonctionne
Inscription WordPress7.1.2Fonctionne
Validation de commande WooCommerce (classique)11.1.2Fonctionne
WPForms2.0.2.2Fonctionne
Validation de commande WooCommerce (en blocs)11.1.2Fonctionne
Elementor Forms4.3.4 (Pro 4.2.1)Fonctionne
Avada Forms7.11.7Fonctionne

Installation

  1. Dans WordPress, ouvrez « Extensions → Ajouter » et recherchez « SilentShield ».
  2. Installez et activez « SilentShield – Captcha & Anti-Spam for WordPress ».
  3. Le menu contient désormais une entrée « SilentShield ».

Saisir la clé et activer les formulaires

  1. Créez une clé pour votre domaine dans le tableau de bord SilentShield et copiez-la.
  2. Dans WordPress, ouvrez « SilentShield → API / SilentShield », collez la clé sous « API Key » et cliquez sur « Validate ».
  3. Activez « Activate API » et cliquez sur « Save ».
  4. Ouvrez « SilentShield → Forms » et activez la protection pour chaque extension de formulaire indiquée comme « Fonctionne » dans le tableau ci-dessus.

L’extension utilise la clé du site à la fois dans le navigateur et pour la vérification sur votre serveur. Aucune clé serveur n’est nécessaire pour cela.

Vérifier le fonctionnement

Un envoi authentique

Ouvrez la page contenant le formulaire dans une fenêtre privée, remplissez-le à la main et envoyez-le. Vous voyez la confirmation habituelle de votre formulaire, et l’envoi apparaît avec son verdict dans le tableau de bord SilentShield.

Un envoi rejeté

Envoyez la même chose sans navigateur, par exemple un commentaire via curl vers un article dont les commentaires sont ouverts. Remplacez l’adresse et l’ID de l’article :

Terminalbash
curl -i -X POST https://example.com/wp-comments-post.php \
  -d "comment_post_ID=1&author=Test&[email protected]&comment=Test"

Attendez-vous à un rejet avec le message de l’extension, sur un site en anglais « Captcha not correct: Behavior check ». Avec Contact Form 7, le formulaire affiche « Behavior check ».

Dépannage

Rien ne se passe lors du clic sur « Envoyer ».
La page est-elle servie en http au lieu de https ? La console du navigateur affiche alors l’avertissement « [SilentShield] Web Crypto fehlt im Worker … » (le message est en allemand). Servez la page en https.
Contact Form 7 affiche « There was an error trying to send your message ».
La vérification a réussi ; c’est l’envoi de l’e-mail par WordPress qui a échoué. Vérifiez les paramètres de messagerie (par exemple SMTP), pas la protection contre les bots.
De vrais visiteurs reçoivent « Behavior check ».
La cause la plus fréquente est une extension d’optimisation qui diffère ou regroupe le JavaScript — voir la remarque ci-dessous. Vérifiez aussi que la clé correspond au domaine de la page.
Un formulaire WPForms ne s’envoie pas, ou la validation de commande en blocs rejette chaque commande.
Mettez à jour l’extension SilentShield vers la version 2.15.14 ou ultérieure. Nous avons mesuré les deux problèmes avec la version 2.15.12 ; avec la 2.15.14, ils ne se produisent plus.
Vous souhaitez voir ce que fait le script.
Ajoutez ?silentshield-debug à l’adresse de la page. La console du navigateur affiche alors chaque étape de la vérification.

Exclure SilentShield des optimiseurs JavaScript

Les plugins de cache et de performance (WP Rocket, Perfmatters, LiteSpeed, Autoptimize et d'autres) peuvent retarder le JavaScript jusqu'à la première interaction du visiteur et regrouper les fichiers. Les deux cassent SilentShield : le widget ne démarre alors qu'au premier clic, les signaux comportementaux dès le chargement (mouvement de souris, rythme de frappe, temporisation) manquent, et la protection travaille avec une fraction de ce qu'il lui faut. Les analyses de formulaires ne se lancent pas du tout. Ajoutez ces motifs aux listes d'exclusion de votre optimiseur, pour « retarder le JavaScript » ET « combiner le JavaScript » :

Motifs d'exclusiontext
client.js
behavior-captcha
silentshield

Pour vérifier : ouvrez une page avec un formulaire et exécutez performance.getEntriesByType("resource").map(r=>r.name).filter(n=>n.includes("client.js")).join() dans la console du navigateur SANS cliquer d'abord. Un résultat vide signifie que SilentShield n'est pas encore chargé — il manque alors une exclusion.

Limites

  • Seules les extensions de formulaire que vous activez sous « SilentShield → Forms » sont protégées.
  • Nous ne mentionnons que les versions testées. L’extension détecte d’autres extensions de formulaire ; nous n’avons pas testé si elles fonctionnent avec SilentShield.
  • L’extension apporte ses propres contrôles (comme un honeypot et une mesure du temps) et affiche pour eux ses propres messages, comme « JavaScript check ».
  • SilentShield protège les formulaires contre les bots. Il ne remplace ni un pare-feu applicatif web ni une protection DDoS.

Exploitation

  • Vous mettez à jour l’extension via WordPress comme n’importe quelle autre. Le script dans le navigateur provient toujours de nous, dans sa version actuelle.
  • Chaque envoi compte deux fois dans le quota : une fois pour le rapport du navigateur, une fois pour la vérification sur votre serveur.
  • Vous voyez les verdicts et les envois rejetés dans le tableau de bord SilentShield.

Voir les tarifs et les quotas

Sans l’extension : intégration personnalisée

Pour vos propres formulaires, ou sans l’extension, intégrez vous-même le script et vérifiez chaque envoi sur votre serveur. Sans cette vérification, le script ne protège pas : il n’arrête pas une requête envoyée directement.

1. Ajouter le script

Ajoutez ce code au fichier functions.php de votre thème ou utilisez une extension comme « Insert Headers and Footers » :

functions.phpphp
// functions.php
function silentshield_enqueue() {
    wp_enqueue_script(
        'silentshield',
        'https://api.silentshield.io/client.js?k=YOUR_API_KEY',
        array(),
        null,
        true
    );
}
add_action('wp_enqueue_scripts', 'silentshield_enqueue');

2. Vérification côté serveur

Ajoutez la vérification du nonce à votre gestionnaire de formulaire. Pour les formulaires personnalisés, ajoutez ceci à votre fonction de traitement :

PHPphp
function verify_silentshield_nonce() {
    $nonce = sanitize_text_field($_POST['behavior_nonce'] ?? '');
    if (empty($nonce)) {
        wp_die('Missing verification', 'Error', array('response' => 422));
    }

    $response = wp_remote_post('https://api.silentshield.io/api/v1/captcha/verify-nonce', array(
        'headers' => array(
            'Content-Type' => 'application/json',
            'X-Api-Key' => SILENTSHIELD_API_KEY,
        ),
        'body' => wp_json_encode(array('nonce' => $nonce)),
        'timeout' => 5,
    ));

    if (is_wp_error($response)) {
        return; // fail open
    }

    $body = json_decode(wp_remote_retrieve_body($response), true);
    if (($body['ok'] ?? false) !== true || ($body['verdict'] ?? '') !== 'human') {
        wp_die('Bot detected', 'Forbidden', array('response' => 403));
    }
}

Stockage de l'API Key

Ajoutez votre API Key dans wp-config.php pour plus de sécurité :

wp-config.phpphp
// wp-config.php
define('SILENTSHIELD_API_KEY', 'your-api-key-here');

Observer les agents IA

Au-delà de la protection des formulaires, WordPress peut aussi enregistrer quels crawlers IA (GPTBot, ClaudeBot, PerplexityBot, …) lisent votre site — dès aujourd'hui via un petit fichier must-use plugin ; une prochaine mise à jour du plugin l'intégrera directement.

En savoir plus : Observer les agents IA →