SilentShield
← Voltar ao Blog
WordPressConfiguraçãoSpamContact Form 7

Configurar um captcha no WordPress e travar o spam dos formulários, passo a passo

Marc Wagner·7 de outubro de 2026·5 min leitura

Este guia leva um site WordPress recém-instalado com Contact Form 7 de «sem proteção» a uma configuração em camadas. Tudo foi testado a 7 de outubro de 2026 com o SilentShield 2.15.14, o Contact Form 7 6.2 e o WordPress 7.1.2. As camadas aqui descritas correm no seu próprio servidor; a API opcional do SilentShield é abordada no guia do WordPress.

Uma instalação nova ainda não protege nada

Dashboard do SilentShield logo após a instalação: um aviso vermelho «No form is protected yet» (Nenhum formulário está protegido) indica que cada plugin de formulários tem de ser ativado individualmente, enumera Contact Forms 7, WordPress Comments, Password Reset, WordPress Login e WordPress Registration, e oferece o botão «Choose what to protect»
Captura de ecrã da interface de administração em inglês (SilentShield 2.15.14, WordPress 7.1.2, testado a 7 de outubro de 2026).

Depois de ativar o plugin, ele está a funcionar, mas nenhum plugin de formulários está ativado. O Dashboard diz-o com clareza: «No form is protected yet» (Nenhum formulário está protegido), seguido dos plugins de formulários que encontrou no seu site. Enquanto não ativar um plugin de formulários, os respetivos formulários não mostram nenhum campo de captcha e nada é verificado.

Todas as definições abaixo encontram-se no menu SilentShield da administração do WordPress.

Passo 1: escolher um método de captcha

Página Protection Settings: o módulo de captcha está ativo, com os métodos Honeypot (invisível, recomendado), Math Problem e Image Captcha, campos para a etiqueta e o texto de exemplo, e uma escolha de modelos de apresentação
Captura de ecrã da interface de administração em inglês (SilentShield 2.15.14, WordPress 7.1.2, testado a 7 de outubro de 2026).

Abra SilentShield → Protection Settings (Definições de proteção). Estão disponíveis três métodos:

  • Honeypot (predefinido, invisível). Um campo-isco fica fora do ecrã; os visitantes nunca o veem, mas os bots que preenchem todos os campos que encontram, sim. Um honeypot não é um desafio: um bot que lê a página e deixa o isco em paz passa.
  • Operação matemática. O visitante resolve um pequeno cálculo (adição, subtração ou multiplicação). É apresentada como texto, por isso um bot que controla um navegador real consegue lê-la.
  • Captcha de imagem. Carateres distorcidos que o visitante tem de escrever. Precisa da biblioteca PHP GD no servidor e é a opção que exige mais esforço aos seus visitantes.

Comece pelo honeypot se a taxa de conclusão for o que mais lhe importa e passe à operação matemática ou ao captcha de imagem quando continuar a chegar spam. Escolha um modelo, ajuste a etiqueta se quiser e clique em Save.

Passo 2: ativar os formulários

Página Forms: a integração Contact Forms 7 está ativada e mostra as etiquetas «Detected» e «Fields detected»; por baixo está listado o formulário «Contact form 1», os restantes plugins de formulários não estão instalados
Captura de ecrã da interface de administração em inglês (SilentShield 2.15.14, WordPress 7.1.2, testado a 7 de outubro de 2026).

Abra SilentShield → Forms (Formulários). Cada plugin de formulários tem um interruptor; a etiqueta ao lado indica se o plugin foi detetado no seu site. Ative o Contact Form 7 e a etiqueta muda de «Disabled» para «Fields detected». Este interruptor guarda de imediato, não há nenhum botão de guardar para premir.

Clique num formulário individual dentro da integração se esse formulário precisar de definições próprias. As definições aplicam-se a três níveis (global, integração, formulário individual) e o nível inferior prevalece sobre o superior.

Guias passo a passo para plugins de formulários individuais: Avada Forms, Elementor Forms, WPForms e o checkout do WooCommerce.

Passo 3: adicionar as camadas de deteção

Página Protection Settings, parte inferior: Timer Protection desativada, JavaScript Detection ativa, Browser Detection ativa, Multiple Submission Protection desativada, Gibberish Detection ativa no modo «Monitor only (record, do not block)» com «Flagged fields required: 3»
Captura de ecrã da interface de administração em inglês (SilentShield 2.15.14, WordPress 7.1.2, testado a 7 de outubro de 2026).

Mais abaixo em Protection Settings, cada camada tem o seu próprio interruptor. Este é o estado numa instalação nova:

  • Deteção de JavaScript (ativa). Bloqueia envios de clientes que não executaram JavaScript, por exemplo um script que envia dados diretamente para o endereço do seu formulário.
  • Deteção de navegador (ativa). Verifica se o pedido traz um user agent válido.
  • Proteção por temporizador (desativada). Rejeita um envio que chegue mais depressa do que um tempo mínimo após o carregamento da página; o mínimo predefinido é de 500 milissegundos.
  • Proteção contra envios múltiplos (desativada). Impede que a mesma sessão de captcha seja enviada mais de uma vez.
  • Gibberish Detection (ativa, «Monitor only»). Assinala texto composto por carateres aleatórios, como «dQgJlwEhfxaLZSKYLy». No modo de monitorização regista o que teria rejeitado e não bloqueia nada. Observe os resultados durante algum tempo e depois mude o modo para «Block».

Um envio é rejeitado assim que qualquer camada ativa o assinala.

Passo 4: limite de frequência e regras de conteúdo contra spam persistente

Página Advanced Settings: IP-based Rate Limiting e Content Rules (limite de URL, BBCode, lista negra de palavras), ambos desativados, e uma lista negra de IP com as entradas de exemplo 192.168.1.1 e 10.0.0.0/24
Captura de ecrã da interface de administração em inglês (SilentShield 2.15.14, WordPress 7.1.2, testado a 7 de outubro de 2026).

Abra SilentShield → Advanced Settings (Definições avançadas). Tudo isto está desativado por predefinição:

  • Limitação de frequência por IP (rate limiting). Após 3 tentativas falhadas em 5 minutos, um endereço é bloqueado durante 1 hora (os valores predefinidos, todos ajustáveis). Os endereços são guardados como hashes com salt.
  • Regras de conteúdo. Um limite para o número de links numa mensagem, um bloqueio de links BBCode ([url=…]) e uma lista negra de palavras. A lista negra é a lista do próprio WordPress em «Settings → Discussion» («Disallowed Comment Keys»), pelo que editá-la num sítio ou no outro tem o mesmo efeito.
  • Lista negra de IP. Endereços que quer sempre bloqueados, um por linha.

Passo 5: testar como visitante, não como administrador

Contact Form 7 após uma resposta de captcha errada: o formulário mostra os valores introduzidos e uma caixa de resposta realçada com o texto «Captcha check»
Captura de ecrã da interface de administração em inglês (SilentShield 2.15.14, WordPress 7.1.2, testado a 7 de outubro de 2026).

Os administradores e os utilizadores com sessão iniciada ignoram por predefinição todas as verificações (a whitelist na mesma página). Um teste com a sessão iniciada não prova, por isso, nada. Abra antes o formulário numa janela privada do navegador:

  1. Envie com uma resposta de captcha errada. O envio tem de ser bloqueado; o Contact Form 7 mostra o motivo na sua caixa de resposta, aqui «Captcha check».
  2. Recarregue o formulário e envie com a resposta correta. Tem de passar.

Que definição trava que tipo de spam

  • Scripts que enviam diretamente, sem navegador: Deteção de JavaScript e Deteção de navegador.
  • Bots que preenchem todos os campos: o honeypot.
  • Scripts que preenchem e enviam um formulário em milissegundos: Proteção por temporizador.
  • Texto de enchimento com carateres aleatórios: Gibberish Detection.
  • Spam de links: limite de URL, bloqueio de BBCode e lista negra de palavras.
  • O mesmo endereço a tentar vezes sem conta: limitação de frequência por IP.

Limites

  • Nenhuma definição trava o spam que uma pessoa escreve à mão.
  • Os bots que controlam um navegador real podem passar as verificações do lado do cliente. As regras de conteúdo e a Gibberish Detection olham, em vez disso, para o que foi escrito; para este caso, a camada adequada é a análise de comportamento.
  • Sem JavaScript no navegador, um envio para um formulário protegido é rejeitado.

Guia de proteção de formulários

Pronto para abandonar o CAPTCHA?

Comece a proteger os seus formulários — de forma invisível. Sem cartão de crédito.