Quem tem um blog com a plataforma WordPress sabe como é difícil fugir dos spammers que insistem em postar centenas de comentários publicitários e indesejados todos os dias. Aqui no RBTech não é diferente, o problema é que isso já estava ficando inaceitável, pois diariamente eu estava recebendo em média 300 spams.
Apesar de usar o plugin AntiSpam Bee que marca 99% dos spams os move para a pasta adequada, sempre precisa ficar conferindo se não houve algum falso positivo e em seguida excluir o lixo restante.
Procurei durante vários anos uma solução capaz de bloquear os spammers de forma eficiente e sem precisar ficar instalando plugins pesados e muitas vezes não confiáveis no blog. Testei dicas para o arquivo .htaccess, usei o recurso wp_nonce_field para gerar chaves de validação no form de comentários e muitas outras dicas encontradas em sites do mundo todo.
Resolvi então que era hora de estudar como funciona um bot spammer, entender os passos deles para poder me defender de forma eficaz. Pois bem, depois de muito pesquisar e estudar temos um veredito.
A grande maioria (isso não é regra) dos robôs responsáveis por publicar spam nos blogs funciona da seguinte forma:
Como citado acima, um robô não consegue identificar quais campos do formulário são realmente requeridos para a postagem do conteúdo, assim sendo eles sempre irão preencher todos os campos antes do envio.
Usando essa lógica fazemos o seguinte:
Tudo que você precisa fazer é adicionar o seguinte código ao arquivo functions.php do seu tema:
function add_comment_extra_field(){
echo '<input type="text" style="display:none;" name="username" />';
}
add_action('comment_form', 'add_comment_extra_field');
function check_comment_extra_field(){
if (trim($_POST['username'])!='') die('Desculpe, mas suspeitamos que seu comentario seja spam!');
}
add_action('pre_comment_on_post', 'check_comment_extra_field');
Agora é só esperar alguns dias e conferir o resultado. Aqui no RBTech reduziu a praticamente ZERO o número de spam após a implementação das funções.
Compartilhe esse post:Sou técnico em hardware e desenvolvedor web, e sobre estes dois assuntos comecei a compartilhar aulas e artigos, tornando-me blogueiro em 2008. Em 2010 esse hobby virou profissão, e desde então tenho buscado melhorar e profissionalizar cada vez mais os projetos que mantenho na web.
Atualmente temos 8 comentários para este post. Participe você também, clique aqui e comente sobre o assunto.
Qualquer parte do functions vai funcionar, não há distinção de uma função colocada no início para outra colocada no fim.
ResponderTem razão. Minha pergunta foi tola.
Desculpa.
Obrigado.
ResponderÓtimo artigo, estava recebendo por volta de 200 spams por dia, e agora aparentemente parou.
Só mudei um item no código, a função add_comment_extra_field não inseriu o campo username no formulário, então removi essa função do functions e adicionei o campo diretament no arquivo comments.php do meu tema.
Abraço e obrigado
Fernando
Realmente isso é interessante, mas tenho dúvidas se isso fere principalmente a acessibilidade e de maneira menos importante quem quer validar o código.
ResponderAmigo,
Onde no arquivo functions.php devo inserir o codigo?
aqui tenho um arquivo functions.php dentro de theme e outro dentro de theme/includes/
obrigado
Responderinteressante... vou testar !!
ResponderValeu pela dica! coloquei no meu site, agora é só ver o resultado.
Responder© 2008-2023 - RBTech.info | Todos os direitos reservados | Hospedado por Innova Host
É proibida a reprodução total ou parcial de qualquer conteúdo deste site.
Bom dia Ricardo,
não tenho muito conhecimento em WordPress. Na verdade trabalho mais com Joomla. Uma amiga pediu para eu verificar como resolver essa questão de spam que está aparecendo nos comentários do blog dela e desenvolvido em WordPresss. A pergunta é: onde exatamente coloco o script disponibilizado no arquivos function.php?
Obrigado
Att.,
André ventura