SilentShield es una alternativa invisible al CAPTCHA, conforme al RGPD, para aplicaciones PHP. Añades un script de cliente a tus formularios y verificas cada envío en el servidor con una sola llamada HTTP y una clave API: nada que instalar, nada que mantener. Sin cookies, sin rastreo y sin datos personales; el alojamiento es exclusivamente en la UE de forma predeterminada.

CAPTCHA invisible para PHP

Una clave API y unas pocas líneas de PHP: sin paquete, sin dependencia. Funciona en Laravel, Symfony o PHP puro. Invisible, conforme al RGPD, integrado en minutos.

Integración de CAPTCHA en PHP

PHP Developer Features

Sin dependencia: cinco líneas de PHP puro
Compatible con PHP 8.1+
Independiente del framework — Laravel, Symfony o PHP puro
Basado en nonce — invisible, sin interacción del usuario
Una clave API, una llamada: POST /captcha/verify-nonce
Diseñado como fail-open — nunca bloquea si la API falla

Ejemplos de código

Requisitos

# No package, no dependency.
# PHP 8.1 or newer with the cURL extension — that is all.
php -m | grep curl

Integración en el frontend

<!-- Add to <head> with SRI for security -->
(function () {
  var KEY = "YOUR_API_KEY";
  var SITE = location.hostname;
  var V = "2025.09.1";
  var s = document.createElement('script');
  s.src = "https://api.silentshield.io/client.js?k=" + encodeURIComponent(KEY)
    + "&v=" + encodeURIComponent(V)
    + "&site=" + encodeURIComponent(SITE);
  s.async = true;
  s.crossOrigin = "anonymous";
  document.head.appendChild(s);
})();

Verificación en el backend

<?php
$api_key = "YOUR_API_KEY";
$nonce = $_POST['behavior_nonce'] ?? ''; // hidden input injected by client.js

$payload = json_encode(['nonce' => $nonce]);

$ch = curl_init("https://api.silentshield.io/v1/verify");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
  "Content-Type: application/json",
  "api-key: " . $api_key,
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);

$response = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);

if ($http_code !== 200) {
  error_log("SilentShield API error: " . $http_code);
  // Fail secure: reject on API errors
  exit(json_encode(['error' => 'Verification failed']));
}

$data = json_decode($response, true);
$is_human = $data['ok'] && $data['verdict'] === 'human' && $data['confidence'] >= 0.7;

if (!$is_human) {
  error_log("Bot detected. Nonce: " . ($data['requested_nonce'] ?? 'unknown'));
  exit(json_encode(['error' => 'Bot detected']));
}

Cómo funciona SilentShield en PHP

SilentShield añade una comprobación invisible a tus formularios PHP y verifica cada envío en el servidor. El script de cliente se ejecuta en segundo plano mientras el visitante rellena el formulario, y el token generado se envía con la solicitud. Tu backend PHP confirma el token antes de procesarlo, por lo que a los usuarios reales nunca se les muestra un rompecabezas.

Una llamada, una clave API

La verificación es un único POST a https://api.silentshield.io/api/v1/captcha/verify-nonce con tu clave en la cabecera X-Api-Key. Lee ok en la respuesta y rechaza el envío cuando sea false. Las mismas cinco líneas funcionan en PHP puro igual que en Laravel o Symfony: una llamada HTTP no tiene nada específico de framework.

Guía de configuración

Añade el script de cliente de SilentShield https://api.silentshield.io/client.js?k=YOUR_API_KEY a tu formulario y copia tu clave API desde el panel. Al enviar, lee el token de la solicitud, crea un SilentShield\Client y llama a verify. Cuando la comprobación es correcta, procesa el formulario; de lo contrario, devuelve una respuesta 403 y rechaza el envío.

Privacidad y accesibilidad de forma predeterminada

SilentShield no usa cookies, ni seguimiento, ni datos personales, lo que mantiene tus formularios PHP alineados con el RGPD. Toda la verificación se ejecuta en infraestructura exclusivamente en la UE de forma predeterminada. Como no hay rompecabezas de imagen ni de audio, la protección cumple con las WCAG 2.1 AA y sigue siendo accesible para usuarios de teclado y de lectores de pantalla.

Integra PHP ahora

Cinco líneas de PHP: listo en minutos.

Preguntas frecuentes

¿Cómo añado un CAPTCHA a un sitio PHP?

Añade el script de cliente `https://api.silentshield.io/client.js?k=TU_CLAVE_API` a tus páginas y verifica después el nonce de prueba de trabajo en PHP con un único POST a `https://api.silentshield.io/api/v1/captcha/verify-nonce`, enviando tu clave en la cabecera `X-Api-Key`. Una clave API cubre el frontend y el backend.

¿Hay un SDK de PHP para SilentShield?

No lo necesitas. La verificación es una sola llamada HTTP, así que unas pocas líneas de PHP puro con cURL bastan en cualquier framework: Laravel, Symfony o ninguno. Añades el script de cliente y compruebas el campo `ok` de la respuesta antes de aceptar el formulario. Si prefieres un paquete, la guía de Agent Enforce muestra la instalación directamente desde GitHub.

¿Cómo verifico un nonce de SilentShield en PHP?

Envía el `behavior_nonce` que remitió tu formulario mediante POST a `https://api.silentshield.io/api/v1/captcha/verify-nonce`, con tu clave API en la cabecera `X-Api-Key`. La respuesta incluye `ok`, `verdict` y `confidence`; rechaza el envío cuando `ok` sea false.

¿Funciona SilentShield con Laravel o PHP puro?

Sí. Como la verificación es una llamada HTTP corriente, funciona en cualquier aplicación PHP: Laravel, Symfony o PHP puro. Añades el script de cliente a tus formularios y verificas el nonce en el servidor antes de procesar el envío.

¿Cumple SilentShield el RGPD en un backend PHP?

Sí. Sea cual sea tu backend, SilentShield aloja los datos en la UE de forma predeterminada, no establece cookies, no rastrea y solo guarda datos seudonimizados. Tu servidor PHP verifica el nonce con una única llamada HTTPS; ningún dato personal sale de tu aplicación.

¿Tienen que resolver un acertijo los usuarios de PHP?

No. SilentShield es invisible, por lo que los visitantes de su sitio PHP nunca ven un acertijo visual ni una casilla de verificación. El script del cliente verifica a los usuarios reales en segundo plano mediante señales de comportamiento y un nonce de prueba de trabajo, cumpliendo la norma WCAG 2.1 AA, mientras su backend bloquea los bots mediante `SilentShield\Client`.