Spam, como odeio isso!
25/04/07
16.657 spams bloqueados. Basta! Não dá mais. Coloquei uma espécie de CAPTCHA nos comentários (perguntinhas básicas de soma de 2 números). Desculpe-me por este incomôdo, mas apagar 300 spams por dia estava ficando totalmente inviável.
Update: Se você quer adicionar este suporte ao seu blog (Wordpress), adicione o código abaixo ao arquivo "functions.php", presente no diretório do seu tema. Caso ele não exista, crie-o.
<?php
/* author: Nando Vieira <fnando dot vieira at gmail dot com> */
function challenge_check($comment_id)
{
global $wpdb, $user_ID, $comment_count_cache;
if ($user_ID) {
return;
}
$hash = $_POST['challenge_hash'];
$challenge = md5($_POST['challenge']);
$post_id = $_POST['comment_post_ID'];
if ($hash != $challenge) {
$wpdb->query("DELETE FROM {$wpdb->comments} WHERE comment_ID = {$comment_id}");
$count = $wpdb->get_var("select count(*) from $wpdb->comments where comment_post_id = {$post_id} and comment_approved = '1'");
$wpdb->query("update $wpdb->posts set comment_count = {$count} where ID = {$post_id}");
wp_die(__('Sorry, but your answer is incorrect.'));
}
}
function challenge_form()
{
global $user_ID;
if ($user_ID) {
return;
}
$nums = array(rand(1,4), rand(1,4));
$n1 = max($nums[0], $nums[1]);
$n2 = min($nums[0], $nums[1]);
$challenge = ($n1 + $n2);
$hash = md5($challenge);
$question = "Quanto é {$n1} + {$n2}?";
$field = sprintf('<p><label for="challenge">%s</label> <input type="hidden" name="challenge_hash" value="%s" /> <input type="text" name="challenge" id="challenge" size="2" /></p>', $question, $hash);
echo $field;
}
add_action('comment_post', 'challenge_check');
add_action('comment_form', 'challenge_form');
?>
Update: não recebi mais nenhum spam! ;)
- Permalink
- Trackback
- Feed dos comentários
- Ao som de: Consumed – Glory Hole

Comentários #
Raiz quadrada de… hum… já sei! 6. :)
Que legal esse sistema, gostei… hehehe
Pois é cara, eu usava um plugin assim também mas removi.
Alguns spammers ainda conseguem burlar esse tipo de defesa…
A melhor defesa até agora tem sido o askmet… Esse sim tem funcionado.
Estava recebendo cerca de 40 spams diários, hoje não recebo mais nenhum graças a ele.
@Danilo, mas você ainda tem que remover os spams manualmente, não? Eu uso o askimet, mas ele apenas marca os comentários como spam. Ou estou viajando?
O Akismet marca como Spam e você tem que deletar.
Sabia! ;)
Poxa, aqui nao aconteceu nada.. e ainda deu uma msg de erro ao efetuar logout.. :(
Diego, que versão do WP você está usando? Qual o erro que apareceu?
Nando,
uma pergunta usei seu codigo, e a questão aparece depois do botão submit. Pode ser que meu tema seja diferente do seu na chamada do metodo comment_post sei lá,
tem como vc me passar como fez pra ficar antes disso no seu?
Abs
Marcelo, basta mudar de lugar a chamada para a função
do_action('comment_form', $post->ID);Muito interessante. É só copiar no functions.php?
Podia fazer um plugin com isso. Não ficava melhor?
Alenônimo, dá uma olhada aqui[1] que o Flávio do japs.etc.br já fez isso com o meu código.
[1] japs.etc.br
[...] solução foi implementada pelo Flávio Kaminisse à partir de uma implementação em PHP do Nando Vieira . O código original barrava trackbacks e foi corrigido pelo Flávio e transformado em plugin do [...]
[...] do Wordpress, ele me disse que ele tinha implementado o código e me passou o link do artigo, Spam, como odeio isso!, que continha o código e algumas dicas para [...]
Como evitar spam no seu blog WordPress…
Um dos maiores problemas para quem gerencia um blog, são as mensagens com spam, recebidas pelo arquivo de comentários dos blogs que utilizam o WordPress.
Quando se tem 2 ou 3 spams, é até aceitável, mas quando começa a passar dos 50 por dia, a si…
[...] Comment's Hash - Comecei a utiliz
No tema que estou modificando nao funciona, veja
http://www.hostip.com.br/blog
[...] aqui o hack do Nando para adicionar CAPTCHA ao Wordpress e se juntar ao Akismet no combate à [...]
Show! Tinha implementado isso em um form de contato de um site. Só que o resultado da soma tinha que ser feito por extenso. =D
não existe outro plugin?
Deixe um comentário