SilentShield

Proteja los formularios de WordPress con SilentShield

El plugin oficial «SilentShield – Captcha & Anti-Spam» integra el script y verifica cada envío en su servidor, sin código propio. Esta guía solo recoge lo que hemos probado nosotros mismos con el plugin.

Ver el plugin en el directorio de WordPress

Requisitos

  • WordPress 5.2 o posterior y PHP 7.4 o posterior (según indica el plugin en el directorio de WordPress).
  • Su sitio web funciona con https. Sin un contexto seguro, el navegador no ofrece las funciones de Web Crypto, no se genera ningún nonce y los formularios protegidos no se pueden enviar.
  • Una cuenta de SilentShield con una clave para su dominio. Los subdominios como www. o staging. están incluidos.

Qué formularios se pueden proteger

Probado el 7/10/2026 con el plugin 2.15.14 y WordPress 7.1.2: una persona pasa y se confirma en el servidor; un envío sin navegador se rechaza.

FormularioVersión probadaEstado
Contact Form 76.2Funciona
Fluent Forms6.2.15Funciona
Comentarios de WordPress7.1.2Funciona
Inicio de sesión de WordPress7.1.2Funciona
Registro de WordPress7.1.2Funciona
Checkout de WooCommerce (clásico)11.1.2Funciona
WPForms2.0.2.2Funciona
Checkout de WooCommerce (checkout en bloques)11.1.2Funciona
Elementor Forms4.3.4 (Pro 4.2.1)Funciona
Avada Forms7.11.7Funciona

Instalación

  1. En WordPress, abra «Plugins → Añadir nuevo» y busque «SilentShield».
  2. Instale y active «SilentShield – Captcha & Anti-Spam for WordPress».
  3. En el menú aparece ahora la entrada «SilentShield».

Introducir la clave y activar los formularios

  1. Cree una clave para su dominio en el panel de SilentShield y cópiela.
  2. En WordPress, abra «SilentShield → API / SilentShield», pegue la clave en «API Key» y haga clic en «Validate».
  3. Active «Activate API» y haga clic en «Save».
  4. Abra «SilentShield → Forms» y active la protección para cada plugin de formularios que figure como «Funciona» en la tabla anterior.

El plugin utiliza la clave del sitio tanto en el navegador como para la verificación en su servidor. Para ello no se necesita una clave de servidor.

Comprobar que funciona

Un envío auténtico

Abra la página con el formulario en una ventana privada, rellénelo a mano y envíelo. Verá la confirmación habitual de su formulario, y el envío aparecerá con su veredicto en el panel de SilentShield.

Un envío rechazado

Envíe lo mismo sin navegador, por ejemplo un comentario mediante curl a una entrada con los comentarios abiertos. Sustituya la dirección y el ID de la entrada:

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

Lo esperado es un rechazo con el mensaje del plugin; en un sitio en inglés, «Captcha not correct: Behavior check». Con Contact Form 7, el formulario muestra «Behavior check».

Solución de problemas

Al hacer clic en «Enviar» no ocurre nada.
¿Se sirve la página por http en lugar de https? En ese caso, la consola del navegador muestra la advertencia «[SilentShield] Web Crypto fehlt im Worker …» (el mensaje está en alemán). Sirva la página por https.
Contact Form 7 indica «There was an error trying to send your message».
La verificación se ha superado; lo que ha fallado es el envío del correo por parte de WordPress. Revise la configuración de correo (por ejemplo, SMTP), no la protección contra bots.
Los visitantes reales reciben «Behavior check».
La causa más frecuente es un plugin de optimización que retrasa o combina JavaScript; consulte la nota más abajo. Compruebe también que la clave corresponde al dominio de la página.
Un formulario de WPForms no se envía, o el checkout en bloques rechaza todos los pedidos.
Actualice el plugin SilentShield a la versión 2.15.14 o posterior. Medimos ambos problemas con la versión 2.15.12; con la 2.15.14 ya no se producen.
Quiere ver qué hace el script.
Añada ?silentshield-debug a la dirección de la página. La consola del navegador mostrará entonces cada paso de la verificación.

Excluye SilentShield de los optimizadores de JavaScript

Los plugins de caché y rendimiento (WP Rocket, Perfmatters, LiteSpeed, Autoptimize y otros) pueden retrasar el JavaScript hasta la primera interacción del visitante y combinar archivos en un solo paquete. Ambas cosas rompen SilentShield: el widget solo arranca cuando alguien hace clic, faltan las señales de comportamiento desde la carga de la página (movimiento del ratón, ritmo de escritura, tiempos) y la protección trabaja con una fracción de lo que necesita. Los escaneos de formularios no se ejecutan en absoluto. Añada estos patrones a las listas de exclusión de su optimizador, tanto para «retrasar JavaScript» como para «combinar JavaScript»:

Patrones de exclusióntext
client.js
behavior-captcha
silentshield

Para comprobarlo: abre una página con un formulario y ejecuta performance.getEntriesByType("resource").map(r=>r.name).filter(n=>n.includes("client.js")).join() en la consola del navegador SIN hacer clic antes. Un resultado vacío significa que SilentShield aún no se ha cargado: falta una exclusión.

Límites

  • Solo están protegidos los plugins de formularios que active en «SilentShield → Forms».
  • Solo indicamos versiones probadas. El plugin detecta otros plugins de formularios; no hemos probado si funcionan con SilentShield.
  • El plugin incluye comprobaciones propias (como honeypot y medición de tiempo) y muestra mensajes propios para ellas, como «JavaScript check».
  • SilentShield protege los formularios frente a bots. No sustituye a un firewall de aplicaciones web ni a una protección contra DDoS.

Funcionamiento

  • El plugin se actualiza a través de WordPress como cualquier otro. El script del navegador siempre procede de nosotros en su versión actual.
  • Cada envío cuenta dos veces para la cuota: una por el informe del navegador y otra por la verificación en su servidor.
  • Los veredictos y los envíos rechazados se ven en el panel de SilentShield.

Ver precios y cuotas

Sin el plugin: integración propia

Para formularios propios, o sin el plugin, integre usted mismo el script y verifique cada envío en su servidor. Sin esa verificación, el script no protege: no detiene una solicitud enviada directamente.

1. Agregar el script

Agregue este código al archivo functions.php de su tema o utilice un plugin como « 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. Verificación del lado del servidor

Agregue la verificación del Nonce a su controlador de formulario. Para formularios personalizados, agregue esto a su función de procesamiento:

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

Almacenamiento de la API Key

Agregue su API Key al archivo wp-config.php por seguridad:

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

Observar agentes de IA

Más allá de la protección de formularios, WordPress también puede registrar qué rastreadores de IA (GPTBot, ClaudeBot, PerplexityBot, …) leen su sitio — hoy mediante un pequeño archivo must-use plugin; una próxima actualización del plugin lo traerá integrado.

Más información: Observar agentes de IA →