Hushfort

Como bloquear spam no formulário de contato do WordPress sem CAPTCHA?

Por Eureka Studio · Atualizado em

Resposta rápida

Em vez de um CAPTCHA, combine verificações invisíveis: um campo honeypot oculto que só os bots preenchem, um tempo mínimo de preenchimento, um token que resiste ao cache de página e limites por IP e por e-mail. Coloque as mensagens duvidosas em quarentena em vez de excluí-las. Um plugin local faz isso no Elementor, no Contact Form 7 e no WPForms sem enviar dados para fora. No Hushfort, a proteção de plugins de formulário faz parte do Pro; o plugin gratuito cobre só comentários e avaliações.

Passo a passo

  1. 1Passo 1

    Veja os bots atacando seu formulário

    Os bots preenchem todos os campos que encontram, inclusive um oculto que uma pessoa nunca vê, ou enviam sem sequer carregar a página. O registro do Hushfort identifica cada caso: honeypot preenchido, sem token, preenchido rápido demais, links demais.

    Tabela Registros e Quarentena do Escudo Antispam com entradas do formulário de contato do WPForms: sem token, limite por IP excedido, campo honeypot preenchido, links demais
  2. 2Passo 2

    Ative o Escudo Antispam no modo Monitorar

    No Hushfort, abra o Escudo Antispam, ative-o e defina o Modo como "Só registrar — modo Monitorar, não bloqueia nada". Com o Hushfort Pro instalado, mantenha os Plugins de formulário ligados e salve. Ele registra o que bloquearia, sem bloquear nada ainda.

    Escudo Antispam ativado com o Modo definido como Só registrar — modo Monitorar, não bloqueia nada
  3. 3Passo 3

    Defina os limites silenciosos (Pro)

    Mantenha o Tempo mínimo de preenchimento curto (3 segundos). Com o Pro, limite também quantas mensagens um IP (Limite por IP) ou um endereço de e-mail (Limite por e-mail) pode enviar por hora. Mensagens com mais links do que o Máximo de links vão para a quarentena.

    Limites do Escudo Antispam: tempo mínimo de preenchimento de 3 segundos, limite por IP de 5 por hora, limite por e-mail de 3 por hora, máximo de 2 links
  4. 4Passo 4

    Revise o registro e mude para Bloquear

    Depois de alguns dias, veja o que o modo Monitorar pegou. Se não houver mensagens reais ali, defina o Modo como "Bloquear (recomendado)" e salve.

    Modo do Escudo Antispam alterado de Só registrar para Bloquear (recomendado) e salvo
  5. 5Passo 5

    Pessoas reais simplesmente enviam

    O visitante digita por meio minuto, nunca vê o campo oculto e envia. Sem quebra-cabeças, sem grades de imagens.

    Um visitante preenche o formulário de contato da loja de demonstração e envia; o formulário responde Thanks for your message

Por que isso importa

O spam em formulários parece só um incômodo, até deixar de ser. Ele soterra os contatos reais, acostuma você a passar os olhos pela caixa de entrada sem ler e pode derrubar a reputação de envio do seu servidor de e-mail se o formulário manda respostas automáticas. Em sites movimentados, ele também consome tempo de servidor, porque cada envio passa por todo o processamento do plugin de formulário.

A solução de sempre, um CAPTCHA, joga o custo para os seus visitantes. Eles resolvem quebra-cabeças, alguns desistem e quem usa ferramentas de privacidade fica travado. A maioria dos serviços de CAPTCHA também carrega código de terceiros e envia dados dos visitantes para fora do seu servidor.

Existe um jeito mais silencioso. Os bots se comportam de forma diferente das pessoas, e isso pode ser verificado sem que ninguém perceba:

  • Eles preenchem campos ocultos. Um honeypot é um campo escondido das pessoas, mas visível no HTML. Uma pessoa o deixa vazio; um bot o preenche.
  • Eles são rápidos. Uma pessoa precisa de alguns segundos para preencher um formulário. Um bot precisa de milissegundos.
  • Eles se repetem. Um IP ou um endereço de e-mail que envia dez mensagens por hora não é um cliente.
  • Eles colam links. Uma mensagem cheia de links raramente é um contato real.

Erros comuns

  • Bloquear em vez de colocar em quarentena. Quando uma verificação está em dúvida, guarde a mensagem para análise. Excluir a pergunta de um cliente real é pior do que ler um spam.
  • Ir direto para Bloquear. Comece em um modo que apenas registra, por alguns dias. Veja o que teria sido bloqueado antes de deixar bloquear.
  • Tokens que quebram com o cache. Se o seu token antispam faz parte de uma página em cache, todos os visitantes compartilham um mesmo token vencido. Use uma proteção que busque o token quando a página carrega.
  • Uma verificação só. Um honeypot sozinho barra os bots simples. Acrescente a verificação do tempo de preenchimento e limites.

Sem plugin

A maioria dos plugins de formulário já tem uma versão básica disso:

  • Formulários do Elementor Pro: adicione um campo "Honeypot" a partir da lista de campos.
  • Contact Form 7: adicione um honeypot por meio de um complemento; o CF7 também é compatível com o Akismet, se você aceitar enviar dados a esse serviço.
  • WPForms: tem um token antispam nativo e um honeypot opcional nas configurações de cada formulário.

Você também pode adicionar à mão um honeypot simples a qualquer formulário que controle:

<div style="position:absolute;left:-9999px" aria-hidden="true">
  <label>Leave this empty <input type="text" name="website" tabindex="-1" autocomplete="off"></label>
</div>
<?php
if ( ! empty( $_POST['website'] ) ) {
    wp_die( 'Spam detected.', 403 );
}

As limitações: cada plugin de formulário faz isso de um jeito, normalmente não existe um limite de frequência compartilhado entre os formulários, não há quarentena para pegar os enganos e nada cobre comentários ou avaliações. Você acaba configurando a mesma ideia cinco vezes.

Se algo der errado

  • As mensagens reais pararam de chegar. Mude o Escudo Antispam para o modo Monitorar, envie um teste e olhe o registro para ver qual verificação o barrou.
  • Os formulários falham só para alguns visitantes. Limpe o cache de página uma vez depois de ativar a proteção.
  • O spam ainda passa. Reduza o limite de links, adicione palavras ou domínios à lista de bloqueio ou ative o modo estrito nos formulários que só devem aceitar provedores de e-mail conhecidos.

Com o Hushfort

O Escudo Antispam do Hushfort Security, o plugin de segurança gratuito para WordPress, protege comentários e avaliações do WooCommerce. Os plugins de formulário exigem o Hushfort Pro, que acrescenta seis populares (Elementor Pro, Contact Form 7, WPForms, Gravity Forms, Fluent Forms, Forminator) à mesma tela.

  • Honeypot invisível, tempo mínimo de preenchimento e tokens assinados que resistem ao cache de página. O token vem de um script minúsculo de cerca de 2 KB, sem cookies.
  • Pro: limites por IP (5 por hora) e por e-mail (3 por hora) por padrão; mensagens com mais de 2 links vão para a quarentena.
  • Pro: uma lista de cerca de 9.900 domínios de e-mail descartável, suas próprias listas de bloqueio e filtros de palavras.
  • Pro: quarentena com aprendizado "Não é spam".
  • Tem um modo Monitorar, para você ver o que ele bloquearia antes de bloquear.

Sem CAPTCHA, sem API externa, e nenhum dado de formulário jamais sai do seu servidor.

Perguntas frequentes

Honeypots realmente acabam com o spam em formulários?

Eles barram a maioria dos bots automatizados, que preenchem todos os campos que encontram. Alguns bots mais espertos pulam campos ocultos, e é por isso que há uma verificação do tempo de preenchimento e limites por IP atrás do honeypot.

Por que evitar o reCAPTCHA?

Ele cria atrito para os visitantes reais, pode falhar para quem usa ferramentas de privacidade e envia dados dos visitantes a terceiros. Muitos donos de sites também descobrem que ele exige um aviso de cookies.

Isso funciona com cache de página?

Funciona se o token for buscado quando a página carrega, e não embutido no HTML em cache. Caso contrário, todos os visitantes recebem o mesmo token vencido e os formulários falham.

Quais plugins de formulário são cobertos?

Com o Hushfort Pro, o Escudo Antispam cobre os formulários do Elementor Pro, Contact Form 7, WPForms, Gravity Forms, Fluent Forms e Forminator. O plugin gratuito cobre só os comentários e as avaliações do WooCommerce.

O que acontece com uma mensagem que parece spam, mas pode ser real?

Com o Hushfort Pro, ela vai para a quarentena em vez de ser excluída. Marque-a como "Não é spam" e ela é entregue, e o escudo aprende com isso.

Relatar um erro ou pedir um recurso

Sua mensagem vai direto para a equipe que desenvolve o Hushfort.

Sobre o que é?

Usado apenas para responder a você.

Usamos esses dados apenas para responder a você. Privacidade