1001Ferramentas
🐝 Geradores

Gerador Honeypot Form Field

Gere snippets HTML+CSS para campo honeypot anti-spam (input invisível para bots, acessível a usuários humanos) com timestamp opcional.



  

Honeypot em formulário: filtro de spam invisível

Um honeypot é um campo de formulário que nenhum humano vê, mas que a maioria dos bots de spam preenche com prazer. O truque explora uma lacuna de comportamento: bots simples varrem o HTML e despejam texto em todo <input> que encontram, em especial os de nomes familiares como website, url, phone2 ou email_address. O usuário real, que enxerga o DOM renderizado, nunca toca no campo escondido — então, se o servidor recebe um valor não vazio, ele descarta o envio como bot.

Um honeypot robusto em HTML

Esconder o campo é delicado. display:none e visibility:hidden são óbvios demais — bots modernos checam os dois antes de preencher. A receita mais eficaz é renderizar o campo fora da tela, mas ainda no layout, e removê-lo da navegação por teclado:

<input type="text" name="website" tabindex="-1"
       autocomplete="off" aria-hidden="true"
       style="position:absolute;left:-9999px;
              width:1px;height:1px;opacity:0;">

No servidor, o check é uma linha só: se request.body.website não estiver vazio, rejeita como spam. Combine com um check de tempo: armazene o timestamp de renderização em um campo oculto e rejeite envios que chegam em menos de 3 segundos — humanos simplesmente não digitam tão rápido.

Prós e contras

  • Pró: invisível para o usuário — zero fricção, ao contrário de CAPTCHA com quebra-cabeça ou checkbox "Não sou robô".
  • Pró: grátis, sem chamada a terceiro, sem vazamento de privacidade, sem precisar liberar domínio no CSP.
  • Contra: bots sofisticados (Playwright, Puppeteer com comportamento humanizado) leem o CSS computado e sabem pular o campo.
  • Contra: alguns leitores de tela ainda podem anunciar o campo — sempre combine com aria-hidden="true" e tabindex="-1".
  • Cuidado: nunca dê ao campo armadilha o nome password, email ou name — o autofill do navegador vai preencher para um usuário real e disparar falso positivo.

Defesa em profundidade

Honeypot é uma camada, não bala de prata. Stacks anti-spam de produção combinam:

  • Honeypot + time-trap (pega bots burros, ~90% do volume de spam)
  • Rate limiting por IP / por sessão (pega rajadas)
  • Tokens CSRF (bloqueia replay cross-site)
  • Cloudflare Turnstile ou hCaptcha invisível em formulários de alto risco — alternativas modernas ao reCAPTCHA sem quebra-cabeça de imagem
  • Pontuação de conteúdo (Akismet em comentários WordPress, Bayesiano custom em outros)

Onde é usado no mundo real

Formulários de comentários do WordPress incluem honeypot via plugins como Antispam Bee e WPBruiser; o popular Contact Form 7 tem um add-on de honeypot embutido. O framework PHP CodeIgniter documenta um security helper honeypot. A tendência 2024-2025 é parear honeypot com Cloudflare Turnstile, formando um CAPTCHA efetivamente invisível que pega os bots que o honeypot deixa passar, sem nunca pedir para o usuário identificar semáforos.

Perguntas frequentes

Bot avançado consegue ver o honeypot? Sim — navegadores headless dirigidos por Playwright ou Puppeteer leem o estilo computado e pulam a armadilha. Por isso se combina honeypot com check de timestamp e CAPTCHA real em formulários de alto valor.

Devo combinar com reCAPTCHA? Honeypot primeiro (pega o tráfego barato e barulhento) e CAPTCHA invisível depois (Turnstile ou reCAPTCHA v3) é o stack recomendado. Honeypot sozinho já basta em formulários de baixo risco como newsletter signup.

Atrapalha a acessibilidade? Pode atrapalhar, se você esquecer aria-hidden="true". Alguns leitores de tela leem o input fora da tela e confundem o usuário. Sempre adicione atributos ARIA e tabindex="-1".

E honeypots tipo "quanto é 2+3?"? Pegam muito bot, mas são CAPTCHAs disfarçados e adicionam fricção. Pior: são pesadelo de acessibilidade para usuários com discalculia. Prefira a abordagem de campo invisível.

Ferramentas Relacionadas