Como acabar com spam no formulário de contato

Como acabar com spam no formulário de contato: honeypot, armadilha de tempo, CAPTCHA | We.Inc

Acabe com o spam no formulário de contato do seu site com um campo honeypot, uma armadilha de tempo e um CAPTCHA grátis como Turnstile, reCAPTCHA ou hCaptcha, verificado no seu servidor. Demonstração ao vivo.

Como acabar com spam no formulário de contato

Use primeiro as verificações baratas e só depois as que incomodam. Adicione um campo honeypot oculto que as pessoas nunca veem mas os bots preenchem, rejeite formulários enviados mais rápido do que uma pessoa conseguiria digitar e, se o spam continuar passando, adicione um serviço de CAPTCHA como Turnstile, reCAPTCHA ou hCaptcha cujo token o seu servidor verifica.

Defesas contra spam comparadas

Bots de spam varrem a web atrás de formulários e enviam mensagens para eles automaticamente. O seu servidor não vê quem está digitando, então toda defesa funciona identificando um comportamento que uma pessoa não teria, ou pedindo a um serviço separado que garanta o visitante. Teste as duas primeiras defesas na demonstração e depois copie a verificação de servidor que acompanha cada uma.

Perguntas frequentes

O que é um campo honeypot?

Um campo que está no código do formulário mas fica escondido das pessoas. Os visitantes o deixam vazio porque nunca o veem; os bots que preenchem todos os campos que encontram colocam algo nele, e isso os denuncia.

Existe uma alternativa grátis ao reCAPTCHA?

Sim. Cloudflare Turnstile e hCaptcha oferecem planos grátis com o mesmo formato: um script e um widget na página, depois uma chamada do servidor a um endereço siteverify com a sua chave secreta e o token do visitante. Confira a página de planos atual de cada fornecedor para ver os limites.

O reCAPTCHA v3 mostra um desafio?

Não. A documentação do Google diz que o v3 retorna uma pontuação em que 1.0 é muito provavelmente uma interação legítima e 0.0 é muito provavelmente um bot, e sugere começar com um limite de 0.5. Você decide o que fazer com as pontuações baixas.

Só o widget basta para bloquear spam?

Não. A documentação da Cloudflare diz com todas as letras que o widget no navegador, sozinho, não protege os seus formulários. Um bot pode enviar direto para o endereço do formulário, então o servidor precisa verificar o token.

Por que ainda recebo spam com um honeypot?

Alguns bots rodam um navegador de verdade e só preenchem campos visíveis, e parte do spam é digitada por pessoas. Adicione a armadilha de tempo e depois um CAPTCHA. Rejeite também mensagens cheias de links se o seu formulário nunca precisa deles.

Por que as verificações grátis vêm primeiro

Esconda a armadilha do jeito certo

Verifique os tokens de CAPTCHA no servidor

Copie o honeypot e a armadilha de tempo

O HTML vai no seu formulário. A verificação no servidor aparece em Node com Express, mas a lógica cabe em três linhas em qualquer linguagem.

Formulário com campo honeypot

A classe .hp leva a armadilha para fora da tela. O campo started recebe o horário atual por meio do pequeno script.

Verificação no servidor (Node, Express)

Os bots recebem a mesma resposta que as pessoas, assim não conseguem descobrir qual verificação os pegou.

Como adicionar Turnstile, reCAPTCHA ou hCaptcha

Os três funcionam do mesmo jeito. Estes detalhes vêm da documentação de cada fornecedor.

Serviços de CAPTCHA lado a lado

Verificar um token do Turnstile (Node 18 ou posterior)

O widget adiciona ao seu formulário um campo chamado cf-turnstile-response. Guarde a chave secreta em uma variável de ambiente.

Demonstração ao vivo: honeypot mais armadilha de tempo

Nada é enviado para lugar nenhum. Ao clicar em Enviar, as mesmas verificações que um servidor faria rodam aqui mesmo, no seu navegador.

Seu nome

Mensagem

Site (deixe em branco)

Agir como um bot: preencher o campo oculto

Enviar

Recomeçar

Preencha o formulário e clique em Enviar para ver o que a verificação do servidor decide.

Aceito: a armadilha estava vazia e passaram {n} segundos. Um formulário real enviaria a mensagem agora.

Descartado: o campo oculto tinha um valor, então isso parece um bot. O visitante continuaria vendo uma mensagem de agradecimento.

Descartado: enviado após {n} segundos, mais rápido que o mínimo de {m} segundos.

O campo oculto aparece aqui, destacado com contorno, para você ver o que os bots veem.

Comece grátis · Sem cartão de crédito

Relacionados: Guias

Produto

Para quem é

Recursos

Recursos

Empresa

Mapa do site