SilentShield

Proteggere i moduli WordPress con SilentShield

Il plugin ufficiale «SilentShield – Captcha & Anti-Spam» integra lo script e verifica ogni invio sul suo server — senza codice proprio. Questa guida riporta solo ciò che abbiamo testato noi stessi con il plugin.

Vedere il plugin nella directory di WordPress

Requisiti

  • WordPress 5.2 o successivo e PHP 7.4 o successivo (come indicato dal plugin nella directory di WordPress).
  • Il suo sito web funziona su https. Senza un contesto sicuro il browser non fornisce le funzioni Web Crypto, non viene creato alcun nonce e i moduli protetti non possono essere inviati.
  • Un account SilentShield con una chiave per il suo dominio. I sottodomini come www. o staging. sono inclusi.

Quali moduli possono essere protetti

Testato il 07/10/2026 con il plugin 2.15.14 e WordPress 7.1.2: una persona passa e viene confermata sul server, un invio senza browser viene respinto.

ModuloVersione testataStato
Contact Form 76.2Funziona
Fluent Forms6.2.15Funziona
Commenti di WordPress7.1.2Funziona
Accesso a WordPress7.1.2Funziona
Registrazione a WordPress7.1.2Funziona
Checkout di WooCommerce (classico)11.1.2Funziona
WPForms2.0.2.2Funziona
Checkout di WooCommerce (checkout a blocchi)11.1.2Funziona
Elementor Forms4.3.4 (Pro 4.2.1)Funziona
Avada Forms7.11.7Funziona

Installazione

  1. In WordPress apra «Plugin → Aggiungi nuovo» e cerchi «SilentShield».
  2. Installi e attivi «SilentShield – Captcha & Anti-Spam for WordPress».
  3. Nel menu compare ora la voce «SilentShield».

Inserire la chiave e attivare i moduli

  1. Crei una chiave per il suo dominio nella dashboard di SilentShield e la copi.
  2. In WordPress apra «SilentShield → API / SilentShield», incolli la chiave in «API Key» e clicchi su «Validate».
  3. Attivi «Activate API» e clicchi su «Save».
  4. Apra «SilentShield → Forms» e attivi la protezione per ogni plugin di moduli indicato come «Funziona» nella tabella sopra.

Il plugin usa la chiave del sito sia nel browser sia per la verifica sul suo server. Non serve una chiave server.

Verificare il funzionamento

Un invio autentico

Apra la pagina con il modulo in una finestra privata, lo compili a mano e lo invii. Vedrà la normale conferma del suo modulo, e l’invio comparirà con il relativo verdetto nella dashboard di SilentShield.

Un invio respinto

Invii lo stesso senza browser, ad esempio un commento tramite curl a un articolo con i commenti aperti. Sostituisca l’indirizzo e l’ID dell’articolo:

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

Il risultato atteso è un rifiuto con il messaggio del plugin, su un sito in inglese «Captcha not correct: Behavior check». Con Contact Form 7 il modulo mostra «Behavior check».

Risoluzione dei problemi

Cliccando su «Invia» non succede nulla.
La pagina viene servita su http anziché https? In tal caso la console del browser mostra l’avviso «[SilentShield] Web Crypto fehlt im Worker …» (il messaggio è in tedesco). Serva la pagina su https.
Contact Form 7 segnala «There was an error trying to send your message».
La verifica è stata superata; a non riuscire è l’invio della mail da parte di WordPress. Controlli le impostazioni di posta (ad esempio SMTP), non la protezione dai bot.
I visitatori reali ricevono «Behavior check».
La causa più frequente è un plugin di ottimizzazione che ritarda o accorpa il JavaScript — veda la nota qui sotto. Controlli inoltre che la chiave appartenga al dominio della pagina.
Un modulo WPForms non viene inviato, oppure il checkout a blocchi respinge ogni ordine.
Aggiorni il plugin SilentShield alla versione 2.15.14 o successiva. Abbiamo misurato entrambi i problemi con la versione 2.15.12; con la 2.15.14 non si verificano più.
Vuole vedere cosa fa lo script.
Aggiunga ?silentshield-debug all’indirizzo della pagina. La console del browser mostrerà quindi ogni passaggio della verifica.

Escludi SilentShield dagli ottimizzatori JavaScript

I plugin di cache e prestazioni (WP Rocket, Perfmatters, LiteSpeed, Autoptimize e altri) possono ritardare il JavaScript fino alla prima interazione del visitatore e unire i file in un unico bundle. Entrambe le cose rompono SilentShield: il widget parte solo quando qualcuno clicca, mancano i segnali comportamentali dal caricamento della pagina (movimento del mouse, ritmo di digitazione, tempi) e la protezione lavora con una frazione di ciò che le serve. Le scansioni dei moduli non partono affatto. Aggiunga questi schemi alle liste di esclusione del Suo ottimizzatore, sia per «ritardare JavaScript» sia per «unire JavaScript»:

Schemi di esclusionetext
client.js
behavior-captcha
silentshield

Per verificare: apra una pagina con un modulo ed esegua performance.getEntriesByType("resource").map(r=>r.name).filter(n=>n.includes("client.js")).join() nella console del browser SENZA cliccare prima. Un risultato vuoto significa che SilentShield non è ancora caricato: manca un'esclusione.

Limiti

  • Sono protetti solo i plugin di moduli che attiva in «SilentShield → Forms».
  • Indichiamo solo versioni testate. Il plugin rileva altri plugin di moduli; non abbiamo verificato se funzionino con SilentShield.
  • Il plugin include controlli propri (come honeypot e misurazione dei tempi) e mostra per questi messaggi propri, come «JavaScript check».
  • SilentShield protegge i moduli dai bot. Non sostituisce un web application firewall né una protezione DDoS.

Funzionamento

  • Il plugin si aggiorna tramite WordPress come qualsiasi altro. Lo script nel browser proviene sempre da noi nella versione attuale.
  • Ogni invio conta due volte ai fini della quota: una volta per la segnalazione dal browser, una volta per la verifica sul suo server.
  • Verdetti e invii respinti sono visibili nella dashboard di SilentShield.

Vedere prezzi e quote

Senza plugin: integrazione propria

Per moduli propri, o senza il plugin, integri lo script autonomamente e verifichi ogni invio sul suo server. Senza questa verifica lo script non protegge: non ferma una richiesta inviata direttamente.

1. Aggiungere lo script

Aggiunga questo codice al file functions.php del Suo tema o utilizzi un plugin come « 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. Verifica lato server

Aggiunga la verifica del Nonce al Suo gestore di moduli. Per i moduli personalizzati, aggiunga questo alla Sua funzione di elaborazione:

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));
    }
}

Archiviazione dell'API Key

Aggiunga la Sua API Key in wp-config.php per maggiore sicurezza:

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

Osservare gli agenti IA

Oltre alla protezione dei moduli, WordPress può anche registrare quali crawler IA (GPTBot, ClaudeBot, PerplexityBot, …) leggono il Suo sito — oggi tramite un piccolo file must-use plugin; un prossimo aggiornamento del plugin lo integrerà.

Scopra di più: Osservare gli agenti IA →