O SilentShield é uma alternativa invisível ao CAPTCHA, conforme o RGPD, para aplicações PHP. Adicionas um script de cliente aos teus formulários e verificas cada submissão do lado do servidor com uma única chamada HTTP e uma chave API — nada para instalar, nada para manter. Sem cookies, sem rastreio e sem dados pessoais; o alojamento é, por predefinição, apenas na UE.

CAPTCHA invisível para PHP

Uma chave API e algumas linhas de PHP — sem pacote, sem dependência. Funciona em Laravel, Symfony ou PHP simples. Invisível, conforme o RGPD, integrado em minutos.

Integração de CAPTCHA em PHP

PHP Developer Features

Sem dependência — cinco linhas de PHP simples
Compatível com PHP 8.1+
Independente de framework — Laravel, Symfony ou PHP puro
Baseado em nonce — invisível, sem interação do utilizador
Uma chave API, uma chamada: POST /captcha/verify-nonce
Concebido como fail-open — nunca bloqueia numa falha da API

Exemplos de código

Requisitos

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

Incorporação no 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);
})();

Verificação no 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']));
}

Como funciona o SilentShield em PHP

O SilentShield adiciona uma verificação invisível aos seus formulários PHP e verifica cada submissão no servidor. O script de cliente é executado em segundo plano enquanto o visitante preenche o formulário, e o token gerado é enviado com o pedido. O seu backend PHP confirma o token antes do processamento, pelo que os utilizadores reais nunca veem um enigma.

Uma chamada, uma chave API

A verificação é um único POST para https://api.silentshield.io/api/v1/captcha/verify-nonce com a tua chave no cabeçalho X-Api-Key. Lê ok na resposta e recusa a submissão quando for false. As mesmas cinco linhas funcionam em PHP simples tal como em Laravel ou Symfony — numa chamada HTTP não há nada específico de framework.

Guia de configuração

Adicione o script de cliente do SilentShield https://api.silentshield.io/client.js?k=YOUR_API_KEY ao seu formulário e copie a sua chave API a partir do painel. Ao submeter, leia o token do pedido, crie um SilentShield\Client e chame verify. Quando a verificação for bem-sucedida, processe o formulário; caso contrário, devolva uma resposta 403 e rejeite a submissão.

Privacidade e acessibilidade por predefinição

O SilentShield não usa cookies, nem rastreamento, nem dados pessoais, o que mantém os seus formulários PHP em conformidade com o RGPD. Toda a verificação é executada em infraestrutura exclusivamente na UE por predefinição. Como não há enigmas de imagem ou áudio, a proteção cumpre as WCAG 2.1 AA e permanece acessível a utilizadores de teclado e de leitores de ecrã.

Integre com PHP agora

Cinco linhas de PHP — pronto em minutos.

Perguntas frequentes

Como adiciono um CAPTCHA a um site PHP?

Adiciona às tuas páginas o script de cliente `https://api.silentshield.io/client.js?k=A_TUA_CHAVE_API` e depois verifica o nonce de proof-of-work em PHP com um único POST para `https://api.silentshield.io/api/v1/captcha/verify-nonce`, enviando a chave no cabeçalho `X-Api-Key`. Uma chave API cobre o frontend e o backend.

Existe um SDK PHP para o SilentShield?

Não precisas de um. A verificação é uma única chamada HTTP, por isso algumas linhas de PHP simples com cURL bastam em qualquer framework — Laravel, Symfony ou nenhum. Adicionas o script de cliente e verificas o campo `ok` da resposta antes de aceitares o formulário. Se preferires um pacote, o guia Agent Enforce mostra a instalação diretamente a partir do GitHub.

Como verifico um nonce do SilentShield em PHP?

Envia o `behavior_nonce` submetido pelo teu formulário num POST para `https://api.silentshield.io/api/v1/captcha/verify-nonce`, com a tua chave API no cabeçalho `X-Api-Key`. A resposta contém `ok`, `verdict` e `confidence`; recusa a submissão quando `ok` for false.

O SilentShield funciona com Laravel ou PHP puro?

Sim. Como a verificação é uma chamada HTTP comum, funciona em qualquer aplicação PHP — Laravel, Symfony ou PHP simples. Adicionas o script de cliente aos formulários e verificas o nonce do lado do servidor antes de processares a submissão.

O SilentShield é compatível com o RGPD em um backend PHP?

Sim. Seja qual for o backend, o SilentShield aloja os dados na UE por predefinição, não define cookies, não faz rastreio e guarda apenas dados pseudonimizados. O teu servidor PHP verifica o nonce com uma única chamada HTTPS; nenhum dado pessoal sai da tua aplicação.

Os usuários de um site PHP precisam resolver um enigma?

Não. O SilentShield é invisível, portanto os visitantes do seu site PHP nunca veem um enigma visual ou uma caixa de seleção. O script cliente verifica os usuários reais em segundo plano por meio de sinais comportamentais e um nonce de prova de trabalho, atendendo à norma WCAG 2.1 AA, enquanto o seu backend bloqueia bots via `SilentShield\Client`.