Como Parar SPAM em Formulários de Contato com Honeypot

Você está recebendo muito SPAM vindo de seus formulários de contato do WordPress ou PHP? Existem algumas formas de resolver isso, hoje vou apresentar a forma mais prática de todas e costuma parar 80% dos robôs de SPAMMERS (pelo menos até o momento).

Algumas formas de parar SPAM em formulários de Contato do WordPress.

Antes de explicarmos o motivo de você escolher o honeypot como a sua melhor opção de bloqueio vamos primeiro entender as formas mais populares que temos disponíveis no WordPress.

Plugins de Bloqueios para WordPress.

Sabemos que um das maneiras de parar SPAM é com plugins de bloqueios que trabalham normalmente com uma base de dados contendo os IPs dos SPAMMERS. Eu particularmente nunca tive sucesso com nenhum deles, sendo que alguns deles são pagos.

E convenhamos, pagar para parar de receber SPAM não parece uma boa ideia para mim por mais bonito que seja o trabalho dos mantenedores destes plugins.

O grande problema destes plugins é que spammers trocam de IPs a todo momento, é quase impossível para-los 100%, quando um IP é listado, outros já estão em uso.

Captchas

O único algoritmo de Captcha com eficiência comprovada é o da Google, seja o reCaptcha V2 ou o V3, ambos são ótimos mas são invasivos e feios. É fato que se você estiver recebendo uma avalanche de SPAM é sensato considerar o uso do Captcha da Google.

Existem outros Capchas alternativos menos invasivos mas que também não garantem 100% dos bloqueios assim como os plugins baseados em lista de IPs. Talvez a combinação de ambos poderia resultar em um significativa na redução de spam.

Honeypot

A cereja do bolo deste artigo é o Honeypot, uma ideia tão simples capaz de parar 98% dos robôs de spam existentes.

Para quem já assistiu o filma Caçada Virtual (Takedown)” que relata a batalha do FBI com o lendário hacker Kevin Mitnick deve conhecer este termo, afinal com um honeypot que ele foi pego.

Honeypot ou “Pote de mel” é uma espécie de armadilha que você disponibiliza para o invasor. Basicamente se trata de um vulnerabilidade proposital do sistema para pegar o hacker.

Como Parar SPAM em Formulários de Contato com Honeypot?

Honeypot são campos invisíveis ao visitante do seu seu site mas visíveis aos robôs de SPAM, a tendência é que estes robôs preencham este campo. A ideia é justamente testar se o campo está preenchido ou não.

Se o campo do honeypot for preenchido então o algorítimo do formulário entende que houve a interação de um robô.

Agora vamos aprender como implementar o Honeypot em alguns formulários.

Parar SPAM em Formulários do Elementor

Se você usa Elementor PRO, deve ter notado que um dos campos disponíveis é justamente o honeypot, basta inseri-lo em seu form.

No Elementor PRO não tem segredo, basta adicionar o campo do Honeypot e pronto.

Eu tenho melhores resultados quando eu adiciono o campo como sendo o primeiro do formulário e quando coloco na label, por exemplo “Sobrenome”, considerando que no Brasil não temos o costumo de pedir esta informação.

Desafio Matemático em Formulários do Elementor

Se ainda continuar a receber SPAM, a dica é instalar o plugin Math Captcha for Elementor Forms, no entanto, achei este plugin um pouco pesado pela quantidade de JS que ele implementa mas ainda assim pode ser uma boa opção para ajudar a parar o SPAM em quase 100%.

.

Parar SPAM em Formulários do Contact Form 7

Seguindo o mesmo raciocínio do Elementor PRO, o contact Form 7 também tem um plugin especial para o Honeypot – Honeypot for Contact Form 7.

.

Parar SPAM em Formulários do WPForms

Um das melhores alternativas do Contact Forms 7 sem dúvidas é o WPForms, o preferido de muitos temas gratuitos.

Para parar SPAM provenientes dos formulários do WPForms, primeiramente ative a opção Ativar proteção anti-span nas configurações gerais do seu formulário.

Mas apenas este recurso parece não ser o suficiente, para criarmos um honeypot no WPForms é necessário comprar versão PRO ou criar seu próprio honeypot.

Pesquisando na Internet algum plugin complementar para criar honeypot para WPForms, descobri que não existe nenhum até a data de publicação deste artigo, mas encontrei este artigo incrível do Bill EricksonEliminate spam with a custom honeypot

Bill criou uma função a ser incluída no functions.php (Eu espero qeu esteja usando um tema filho para isso) e que implementa um campo de honeypot ao WPForms. Se você não entender os passos descritos por Bill deixe uma mensagem nos comentários.

.

Parar SPAM em formulários de comentários do WordPress.

Se você deseja receber comentários em seu site, você pode implementar um honeypot em seus formulários com o plugin Antispam Bee

.

Parar SPAM em Formulários do PHP / JavaScript / Ajax

Em formulários HTML você terá que adicionar o seguinte código (Considerando que o visitante não precise informar o seu sobrenome);

<style>.estiloPersonalizado {
opacity: 0;
position: absolute;
top: 0;
left: 0;
height: 0;
width: 0;
z-index: -1;
}</style>


<label>Sobrenome</label>
<input name="sobrenome" id="sobrenome" type="text" class="estiloPersonalizado">

Simples né? Embora a regra de CSS display:none; pareça ser mais inteligente ela deve ser evita por ser muito óbvia, os robôs de SPAM mais modernos já são capazes de identificar campos com regras de display ou visible.

Não esqueça de fazer um IF / ELSE para verificar se o input foi preenchido ou não, observando que ele deverá ficar sempre vazio para ser entendido como legítimo.

Você pode ainda criar um pequeno script de desafio com cálculos para potencializar o seu formulário, em breve postarei um artigo com o código. Deixe uma mensagem nos comentários para me cobrar caso eu ainda não tenha publicado nada a respeito.

contact form 7elementorhoneypotparar spamparar spam formulário phpwordpresswpforms