Como implementar o sistema anti-spam Inverse Captcha no WordPress
Amigo,
Implementei um sistema anti-spam neste blog e no serviço Blog Empresa, que é um sucesso!
O Mergulhão explica muito bem o conceito.
Eu vou explicar a aplicação para o WordPress em apenas dois passos:
Primeiro Passo – alterar o html do formulário de comentários
Abra o arquivo comments.php do seu tema.
Troque a linha abaixo:
pelo código abaixo:
<textarea name="comment-valendo" id="comment-valendo" cols="100" rows="10" tabindex="4"></textarea>
<div style="display:none">
Não preencha o campo abaixo.<br />
<textarea name="comment" id="comment" cols="100" rows="10" tabindex="4"></textarea>
</div>
</p>
Segundo Passo – alterar a programação de processamento do formulário
Abra o arquivo wp-comments-post.php.
Logo após a linha:
Insira o seguinte código:
if(!empty($_POST[‘comment’])) {
$location = ( empty($_POST[‘redirect_to’]) ? get_permalink($comment_post_ID) : $_POST[‘redirect_to’] );
$location = apply_filters(‘comment_post_redirect’, $location, $comment);
wp_redirect($location);
exit;
}
else {
$_POST[‘comment’] = $_POST[‘comment-valendo’];
}
/* Fim do Inverse Captcha */
Pronto!
Espero que gostem da dica.
Abraços e até a próxima!








Tentei fazer funcionar no meu site mas fico recebendo um erro que diz que o campo de comentário está vazio. Alguma idéia?
Sensacional! Vou implementar isso ainda hoje! Parabéns pela dica!
Isaac,
Você colocou o código certinho no wp-comments-post.php
Imprima o valor do $_POST para debugar usando:
print_r($_POST);
Abraço
Olá, achei interessante sua técnica, tentei instalar e parece ter funcionado, o problema é que ele parou de moderar o post!
Se tiver alguma idéia do que possa ser, agradeço a ajuda, abraços e obrigado!
Daniel,
Não deveria parar, deve ser outra coisa. Só olhando o código mesmo…
Abraço
Na minha opinião essa gambiarra acaba causando um problema, ou melhor um retrabalho constante quando você faz atualização do Wordpress. Tudo bem que difícilmente eles modificarão o arquivo “wp-comments-post.php”. Mas vai contra o manual de atualização do WP.
Talvez não fosse melhor criar um plugin?
Atenciosamente,
Marcio Toledo
Oi Marcio,
Neste caso não dá pra fazer plugin, pq o Wordpress não tem hooks suficiente.
Abraço
A ideia foi boa o/
eu dei um die no arquivo de coment.. assim para os comentario de spam.. e os envio de email q tava fazendo meu blog ser bloqueado pelo servidor kaka.. vlw
Boa Tarde, gostei da ideia mas fiquei em duvida na real funcionalidade, hoje eu faço uso de um robo de tela para executar meus testes via browser, esse robo completa nos campos que eu pre defini os valores que eu passo a ele, como eu não capturo e exploro todos os campos a validação passaria, em outras palavras o robo preenche exatamente os campos que a ação humana preencheria, qlq coisa me envie um e-mail
vlw a iniciativa.
Acho que não me expliquei bem, hoje faço uso de um robo de tela para a execução de testes, esse robo me permite executar ações automaticas que um usuario realizaria, o que me permite utiliza-lo como “spam”(ñ é o uso correto da palavra mas) preenchendo ,enviando formularios de maneira automatica, essa técnica não impede isso e não bane meu robo , ao meu ver no cadatro não há maneira de retirar o captcha, no acesso a conta podemos usar uma abordagem similar ao google , na primeira tentativa de login , não pede-se o captcha , se ele errar ai sim envio um captcha, deu pra entender??!?! qlq duvida respondo por e-mail
Guilherme,
Realmente não bane neste caso. Mas para ser efetivo o cara teria que fazer um robô específico para o seu site.
O inverse captcha serve para banir as programações automátias para Wordpress.
Infelizmente… pra mim não funcionou.
Implementei conforme as dicas do passo a passo, que até por sinal achei bem simples de fazer. Tentei usar também o codigo Captcha com imagem que explicava em outro blog… tbém não funcionou! Vou tentar achar outro jeito, ou se alguém tiver alguma dica, eu agradeço!
Olá Rafael,
Aliás, o ERRO que aparece é o mesmo do comentário do Isaac Calaça no topo deste post: ( erro que diz que o campo de comentário está vazio).
Onde exatamente posso inserir este codigo “print_r($_POST);” ?
Marcos,
Logo no início do arquivo, isso serve pra debugar e ver se os parâmetros estão vindo conforme esperado na requisição.
Abraço
muito bom!
Rafael, vou fazer essa dica que você deu!
Agora, te perguntar uma coisa.
Tenho sofrido com tentativas de cadastros incessantes.
E os mesmos não estão sendo feitos de forma de usuário.
Eu sempre consigo barrar, porque como os nomes geralmente são estranhos, eu tenho um plugin no WP que antes de deixar usar o login eu tenho de aprovar o mesmo.
Queria saber como fazer este processo que você explicou, só que não parte de cadastro de usuários.
Pra amenizar um pouco da qtde de tentativas de cadastros sem intuito!
Thiago,
Nenhuma dica instantânea, tem que programar mesmo.
Abraço
Thiago, este plugin pode te ajudar:
http://wordpress.org/extend/plugins/si-captcha-for-wordpress/
asdasd