Oferta para novos clientes−20 %20 % de desconto nos primeiros 3 meses com pagamento mensalVer planos
SilentShield

Proteja formulários WordPress com o SilentShield

O plugin oficial «SilentShield – Captcha & Anti-Spam» integra o script e verifica cada envio no seu servidor — sem código próprio. Este guia indica apenas o que testámos nós mesmos com o plugin.

Ver o plugin no diretório do WordPress

Requisitos

  • WordPress 5.2 ou posterior e PHP 7.4 ou posterior (conforme indicado pelo plugin no diretório do WordPress).
  • O seu site funciona com https. Sem um contexto seguro, o navegador não disponibiliza as funções Web Crypto, não é criado nenhum nonce e os formulários protegidos não podem ser enviados.
  • Uma conta SilentShield com uma chave para o seu domínio. Subdomínios como www. ou staging. estão incluídos.

Que formulários podem ser protegidos

Testado em 07/10/2026 com o plugin 2.15.14 e o WordPress 7.1.2: uma pessoa passa e é confirmada no servidor; um envio sem navegador é rejeitado.

FormulárioVersão testadaEstado
Contact Form 76.2Funciona
Fluent Forms6.2.15Funciona
Comentários do WordPress7.1.2Funciona
Início de sessão do WordPress7.1.2Funciona
Registo do WordPress7.1.2Funciona
Checkout do WooCommerce (clássico)11.1.2Funciona
WPForms2.0.2.2Funciona
Checkout do WooCommerce (checkout em blocos)11.1.2Funciona
Elementor Forms4.3.4 (Pro 4.2.1)Funciona
Avada Forms7.11.7Funciona

Instalação

  1. No WordPress, abra «Plugins → Adicionar novo» e pesquise «SilentShield».
  2. Instale e ative «SilentShield – Captcha & Anti-Spam for WordPress».
  3. O menu passa a ter a entrada «SilentShield».

Introduzir a chave e ativar os formulários

  1. Crie uma chave para o seu domínio no painel do SilentShield e copie-a.
  2. No WordPress, abra «SilentShield → API / SilentShield», cole a chave em «API Key» e clique em «Validate».
  3. Ative «Activate API» e clique em «Save».
  4. Abra «SilentShield → Forms» e ative a proteção para cada plugin de formulários indicado como «Funciona» na tabela acima.

O plugin utiliza a chave do site tanto no navegador como na verificação no seu servidor. Para isso, não é necessária uma chave de servidor.

Chave de servidor para o plugin f12-security

O plugin f12-security pode, opcionalmente, trocar indícios sobre bots com o SilentShield: comunica impressões digitais de bots conhecidos e obtém uma lista assinada para a sua conta. Estas chamadas são feitas pelo seu servidor, não pelo navegador dos seus visitantes. Para isso, o plugin precisa da chave de servidor do seu domínio, e não da chave normal do site, que aparece no código-fonte das suas páginas.

  1. No painel do SilentShield, abra “Chaves de API” e a chave do seu domínio.
  2. Aceda à página “Segurança” e, na secção “Chave de servidor”, clique em “Criar chave de servidor”.
  3. Copie o valor de imediato. É mostrado apenas uma vez e não guardamos nenhuma cópia.
  4. Introduza-o no f12-security, no campo identificado como chave de servidor, e guarde.

A chave de servidor pertence apenas às definições do seu servidor, nunca a uma página ou a um script entregue aos visitantes. Se a perder, crie uma nova no painel; a anterior deixa então de ser válida.

Verificar o funcionamento

Um envio genuíno

Abra a página com o formulário numa janela privada, preencha-o manualmente e envie-o. Verá a confirmação normal do seu formulário, e o envio aparece com o respetivo veredicto no painel do SilentShield.

Um envio rejeitado

Envie o mesmo sem navegador, por exemplo um comentário via curl para um artigo com comentários abertos. Substitua o endereço e o ID do artigo:

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

Espere uma rejeição com a mensagem do plugin; num site em inglês, «Captcha not correct: Behavior check». Com o Contact Form 7, o formulário mostra «Behavior check».

Resolução de problemas

Ao clicar em «Enviar», nada acontece.
A página é servida por http em vez de https? Nesse caso, a consola do navegador mostra o aviso «[SilentShield] Web Crypto fehlt im Worker …» (a mensagem está em alemão). Sirva a página por https.
O Contact Form 7 indica «There was an error trying to send your message».
A verificação foi superada; o que falhou foi o envio do e-mail pelo WordPress. Verifique as definições de e-mail (por exemplo, SMTP), não a proteção contra bots.
Visitantes reais recebem «Behavior check».
A causa mais comum é um plugin de otimização que adia ou combina JavaScript — consulte a nota abaixo. Verifique também se a chave pertence ao domínio da página.
Um formulário WPForms não é enviado, ou o checkout em blocos rejeita todas as encomendas.
Atualize o plugin SilentShield para a versão 2.15.14 ou posterior. Medimos ambos os problemas com a versão 2.15.12; com a 2.15.14 já não ocorrem.
Pretende ver o que o script faz.
Acrescente ?silentshield-debug ao endereço da página. A consola do navegador mostra então cada passo da verificação.

Excluir o SilentShield dos otimizadores de JavaScript

Plugins de cache e desempenho (WP Rocket, Perfmatters, LiteSpeed, Autoptimize e outros) podem adiar o JavaScript até à primeira interação do visitante e juntar ficheiros num único pacote. Ambos quebram o SilentShield: o widget só arranca quando alguém clica, faltam os sinais de comportamento desde o carregamento da página (movimento do rato, ritmo de escrita, tempos) e a proteção trabalha com uma fração do que precisa. As análises de formulários não correm de todo. Adicione estes padrões às listas de exclusão do seu otimizador, tanto para «adiar JavaScript» como para «juntar JavaScript»:

Padrões de exclusãotext
client.js
behavior-captcha
silentshield

Para verificar: abra uma página com formulário e execute performance.getEntriesByType("resource").map(r=>r.name).filter(n=>n.includes("client.js")).join() na consola do navegador SEM clicar antes. Um resultado vazio significa que o SilentShield ainda não carregou — falta uma exclusão.

Limites

  • Apenas estão protegidos os plugins de formulários que ativar em «SilentShield → Forms».
  • Indicamos apenas versões testadas. O plugin deteta outros plugins de formulários; não testámos se funcionam com o SilentShield.
  • O plugin traz verificações próprias (como honeypot e medição de tempo) e mostra mensagens próprias para elas, como «JavaScript check».
  • O SilentShield protege formulários contra bots. Não substitui uma firewall de aplicações web nem uma proteção contra DDoS.

Funcionamento

  • Atualiza o plugin através do WordPress como qualquer outro. O script no navegador vem sempre de nós, na versão atual.
  • Cada envio conta duas vezes para a quota: uma pelo relatório do navegador, outra pela verificação no seu servidor.
  • Se o SilentShield pedir ainda um desafio a um visitante, acrescem até 2 pedidos por ele. Um envio que o servidor também verifica custa assim até 2 pedidos; com desafio, até 4.
  • Vê os veredictos e os envios rejeitados no painel do SilentShield.

Ver preços e quotas

Sem o plugin: integração própria

Para formulários próprios, ou sem o plugin, integre o script por si e verifique cada envio no seu servidor. Sem essa verificação, o script não protege: não impede um pedido enviado diretamente.

1. Adicionar o Script

Adicione este código ao ficheiro functions.php do seu tema ou utilize um 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. Verificação no Servidor

Adicione a verificação do nonce ao seu manipulador de formulário. Para formulários personalizados, adicione isto à sua função de processamento:

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

Armazenamento da API Key

Adicione a sua API Key ao wp-config.php para maior segurança:

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

Observar agentes de IA

Para além da proteção de formulários, o WordPress também pode registar que crawlers de IA (GPTBot, ClaudeBot, PerplexityBot, …) leem o seu site — hoje através de um pequeno ficheiro must-use plugin; uma próxima atualização do plugin trará isto integrado.

Saiba mais: Observar agentes de IA →