Como evitar SPAM de comentários com código simples e acessível

Por: Flávio Theruo KaminisseSaturday 1 September 2007 às 12:26 PM

A muito tempo atrás recebi um link de um site muito interessante, falo muito tempo atrás, pois este artigo já estava na área de rascunhos a muito tempo, faltando apenas um pouco de tempo para finalizá-lo e publicá-lo, navegando por ele percebi uma espécie de CAPTCHA nos comentários, perguntei se o autor é que tinha implementado esta funcionalidade ou ele estava utilizando algum plugin 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 implementá-lo.

Mais do que rapidamente peguei o código e coloquei no meu site, a única diferença foram algumas adaptações, basicamente transformei o código em um plugin do WordPress, outras adaptações no código para que não impedisse a publicação de pingback’s e trackback’s e também a remoção da chamada automática no formulário de comentário, facilitando a colocação do código no local mais adequado.

A idéia e a implementação são muito simples, basicamente uma pergunta fácil de ser respondida por pessoas e não trivial de ser respondida por uma máquina, não trivial no sentido de que o spammer teria que fazer implementações específicas para atacar o seu site, e é muito mais fácil e cômodo ele procurar outro site para encher de SPAM do que ficar tratando o seu site como exceção.

A técnica baseia-se na resposta de uma pergunta, neste caso a soma de dois números, mas esta pergunta pode ser o quão diferente possível, pode ser a resposta de uma frase, como por exemplo: “Quem descobriu o Brasil?”, “Gelo é quente ou frio?”, um dos problemas que vejo nesta outra técnica é a limitação do idioma, você acaba limitando seu público ao português por exemplo, então façamos a pergunta em Inglês, novamente podemos limitar algumas pessoas, outro problema é a questão ortográfica, questão de acentuação, caracteres em caixa alta e caixa baixa, todos estas variações devem ser tratadas, então creio que respostas que envolvem números são mais acessíveis a todos, pois a matemática é uma linguagem universal, e como são perguntas simples, nada como (8 * 7) ^ 2, a possibilidade da pessoa saber a resposta é muito alta.

Para colocar em seu site basta baixar o arquivo aqui, descompacta-lo, fazer upload do arquivo wp-challenge-check.php na pasta wp-content/plugins/ e depois ativa-lo na área administrativa do seu blog. Na página de comentários inserir o código <?php challenge_form(); ?>. Uma outra maneira é copiar e colar o código no arquivo functions.php do diretório de seu tema, e caso você queira deixar que a colocação da soma automaticamente, basta descomentar a linha add_action('comment_form', 'challenge_form');.

Espero que este código lhe seja útil, pois para mim foi, depois que coloquei esta simples verificação no site não recebi mais nenhum SPAM.

Artigos relacionados:

Tags: Dicas Download Extensões PHP SPAM

37 Comentários para “Como evitar SPAM de comentários com código simples e acessível”

# 1° Marcus VBP September 1st, 2007 às 1:02 PM GMT

Eu já uso este recurso no meu site, e realmente, ele cessa qualquer tipo de spam, ou pelo menos a esmagadora maioria.

Um grande problema pra mim é spam de trackback, pois recebo muito, e mesmo filtrando bastante, o filtro sempre deixa passar 1 ou outro.

# 2° Spam e acessibilidade » Revolução Etc September 1st, 2007 às 5:23 PM GMT

[...] 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 [...]

# 3° Rafael September 3rd, 2007 às 10:44 AM GMT

Sugestão: use a biblioteca GD do PHP, pra mostrar os números.

# 4° Flávio Theruo Kaminisse September 3rd, 2007 às 11:52 AM GMT

@Rafael,
Seria interessante a utilização da biblioteca GD, mas o código não ficaria mais acessível a portadores de deficiência visual, coisa que acontece quando se utiliza CAPTCHA.
A operação matemática por si só já dificulta qualquer tentativa de um simples ataque de SPAM ao seu site.

# 5° Guilherme Nascimento Valadares September 3rd, 2007 às 12:33 PM GMT

Mto útil, Flávio, ainda não conhecia essa. ;D

# 6° Maysa September 3rd, 2007 às 12:43 PM GMT

Muito bom :)
Instalei e já estou observando… acabando com os spams, faço um post do plugin

Abracos e obrigada!
Maysa

# 7° Carlos Eduardo September 3rd, 2007 às 5:05 PM GMT

Ótimo plugin!

Vou testá-lo agora… Mas pelos depoimentos no Revolução, creio que seja eficaz, de fato.

# 8° Flávio Theruo Kaminisse September 3rd, 2007 às 6:15 PM GMT

@Carlos Eduardo,
Instalamos este plugin juntos e desde então a quantidade de SPAM que recebemos caiu para zero, realmente funcionou para nós.
Espero que também funcione para você, pois ficar apagando SPAM é muito chato.

# 9° Bruno September 4th, 2007 às 12:55 AM GMT

Este comentario foi gerado por um bot.

# 10° Bruno September 4th, 2007 às 1:04 AM GMT

O comentário acima foi gerado por um bot meu. O problema desse código anti-spam é que a resposta é conferida com o hash encontrado no próprio formulário. Basta trocar o hash e pronto! Um script Ruby e 5 min, se for. Easy like sunday morning…

Nem entrei no mérito de que é bem fácil fazer uma implementação que realize as operações matemáticas solicitadas.

Quanto é 2 + 1, mesmo?

# 11° Nando Vieira September 4th, 2007 às 7:50 AM GMT

Bruno,

Você teve que fazer um código específico para quebrar o anti-spam. Quantas pessoas você acha que farão isso? A propósito, você não passou no meu site! ;)

# 12° Flávio Theruo Kaminisse September 4th, 2007 às 8:21 AM GMT

@Bruno,
Fiz apenas uma simples modificação no código, que demorou digamos 1 minuto enquanto eu conversava com o Henrique, pode tentar passar o seu bot novamente.
@Nando,
Concordo contigo quando você diz: “Quantas pessoas farão isso?”, acho que poucas, é mais fácil a pessoa procurar outro site para atacar.

# 13° Bruno September 4th, 2007 às 11:02 AM GMT

Será que sou um bot?

# 14° Bruno September 4th, 2007 às 11:06 AM GMT

@Nando e Flavio
A minha intenção é colaborar para o aperfeiçoamento. Nada além disso. Se estivermos todos com o mesmo objetivo, vai ser legal trabalhar com vocês. Alguém se incomoda de linkar para uma página onde já tem as contas prontas? Risos.

@Nando
Passei sim. Deixei um comentário lá com um link para cá. Não rodei o bot lá. O objetivo era uma prova de conceito, e não fazer SPAM.

O que a Wikipedia diz?
http://en.wikipedia.org/wiki/Captcha

A CAPTCHA system is an means of generating new challenges which:

* Current computers are unable to accurately solve.
– Computadores podem resolver essa conta com facilidade.

* Most humans can solve [3]
– Ok, ponto para o Anti-SPAM.

* Does not rely on the attacker never having seen the given type of CAPTCHA before. For example, although a checkbox “check here if you are not a bot” might serve to distinguish between humans and computers, it is not a CAPTCHA because it relies on the fact that an attacker has not spent effort to break that specific form.
– Código específico? E já que estamos falando de um plugin, um bot pode atacar muitos sites.

* Is able to automatically generate new challenges that require artificial intelligence techniques to solve.
– Sem inteligência artificial. Um compilador resolve o desafio com elegância. Um script deselegante resolve também.

@Flavio
Quebrado? Interessante você salgar o hash. Mas enquanto o hash vier para mim não é muito difícil quebrá-lo. Sobretudo se o hash for sempre o mesmo para a mesma resposta. Já pensou em usar sessão?

@Henrique
Leia por aqui.

@Todos
Só não conhecia o blog do Flavio. Mas vou assinar. Estão todos de parabéns pelo conteúdo. ;)

# 15° Henrique Costa Pereira September 4th, 2007 às 1:30 PM GMT

Olá Bruno, entendo perfeitamente sua intenção e agradeço muito por sua contribuição e testes. Inclusive escrevemos um e-mail privado para você mas parece que não é um e-mail válido que está utilizando. Se prefir entrar em contato conosco de forma privada para enviar mais sugestões, pode utilizar o formulário de contato.

Se puder fazer mais considerações e críticas elas serão sempre bem vindas.

Abraço.

# 16° Flávio Theruo Kaminisse September 4th, 2007 às 2:14 PM GMT

Bruno,
Apenas ratificando o que o Henrique disse, agradecemos o seu esforço em nos mostrar que é possível e não muito complicado montar um sistema que fure este mini anti-spam, o que vejo é que pessoas que irão sair postando SPAM não querem dificuldade, ou seja, ao encontrar um sistema destes provavelmente irão partir para outro site.
Sobre a sua pergunta da session, cheguei a pensar sim, só não quero que se torne um impedimento para alguém comentar de qualquer tipo de dispositivo, seja ele, navegador, celular, palm, etc.
Estou com uma idéia, vou implementá-la e entrarei em contato com você.
Novamente se você quiser entrar em contato e nos passar um email válido para conversarmos estou à disposição.
Abraços

# 17° Bruno September 4th, 2007 às 4:08 PM GMT

@Ambos
Mandei meu email pela página de contatos.

@Flávio
Discordo de parte do teu comentário. Podemos discutir por e-mail, se vocês preferirem.

# 18° Como evitar spam no seu blog WordPress » Simetria September 4th, 2007 às 10:28 PM GMT

[...] o Flávio Theruo Kaminisse, do Japs, adaptou esse código e para simplificar sua instalação, criou um plugin WordPress para esta [...]

# 19° Anderson Custódio October 13th, 2007 às 8:29 AM GMT

Muito bom e fácil de usar =)

# 20° Rodrigo Flausino » Alteração no sistema de comentários October 31st, 2007 às 12:14 AM GMT

[...] a partir de hoje to usando um plugin de capcha textual, onde você terá de resolver uma conta simples (como: quanto que é 2.2? A [...]

# 21° EAD November 19th, 2007 às 4:32 PM GMT

seu blog tah mto bom nota 10 parabéns

# 22° claudya January 6th, 2008 às 4:19 PM GMT

Oi Flávio, minha pergunta é, onde exatamente na página php que eu devo adicionar o código que vc. fala? Obrigada.

# 23° tcho June 2nd, 2008 às 9:12 AM GMT

Muito bom, Vou testá-lo agora…

# 24° Sutra August 16th, 2008 às 9:43 PM GMT

Olá

Eu estou com dificuldades em colocar o código de forma correcta pois ele altera toda a configuração do meu site.

Recebo mais de 300 comments de spam por dia e não aguento mais ter de descobrir comentários de amigos no meio de tudo isso, principalmente agora que vou ficar uns dias fora, em férias.

Poderia ajudar-me?
Eu já fiz o download, descomprimi, fiz upload para o site dentro de ‘plugins’, mas a verdade é que ao colocar aquele código dentro da página de comentários eu não sei em que parte colocá-lo, talvez seja esse o erro.

Obrigada
Su

# 25° Sutra August 17th, 2008 às 8:46 AM GMT

Bruno

Acabei por conseguir colocar o plugin a funcionar. Ele aparece correcto no site, mas há um problema. O spam está igual. Mesmo agora fui descobrir quase mais 200 coments de spam.
No meu site eu uso a moderação para todo o comentário cujo mail nunca foi autorizado antes, assim fica pendente. E esses de spam ficam todos pendentes, mas é chato ter de os apagar.
Pode ajudar-me? Deixei aí o meu mail.
Su

# 26° Pacote de plugins essenciais pra Wordpress » El Micox » Funções prontas JavaScript, Ajax, PHP, DOM, Webstandards, dicas e outras coisas. November 28th, 2008 às 2:53 PM GMT

[...] Comments Hash do Japs – Já famoso. Adiciona uma conta matemática na caixa de comentários. Reduz spam (e se você complicar a conta, pode reduzir comentários de não inteligentes também hahaha) – Ele não está na lista de plugins do wordpress.org, tem que procurar no google. [...]

# 27° Weliton Cardozo Brito » Blog Archive » Dicas de plugin WorkPress. December 6th, 2008 às 4:06 AM GMT

[...] Comments Hash do Japs – Já famoso. Adiciona uma conta matemática na caixa de comentários. Reduz spam (e se você complicar a conta, pode reduzir comentários de não inteligentes também hahaha) – Ele não está na lista de plugins do wordpress.org, tem que procurar no google. [...]

# 28° dadad July 11th, 2009 às 2:48 AM GMT

alallallla

# 29° Felipe July 27th, 2009 às 3:38 PM GMT

.

# 30° Felipe July 27th, 2009 às 4:19 PM GMT

Meu comentário foi em branco…

# 31° Clica Aqui » Plugins essenciais pra Wordpress na opinião do Mico September 7th, 2009 às 1:43 PM GMT

[...] Comments Hash do Japs – Já famoso. Adiciona uma conta matemática na caixa de comentários. Reduz spam (e se você complicar a conta, pode reduzir comentários de não inteligentes também hahaha) – Ele não está na lista de plugins do wordpress.org, tem que procurar no google. [...]

# 32° Antonio Cezar Locutor September 10th, 2009 às 11:40 AM GMT

Eu ativei o plug-in, descomentei o íten indicado para ficar mais fácil e funcionou direitinho, mas passou a dar erro nos Feeds, que passam a dar um erro e não abrem mais. Basta apagar o plug-in, e tudo volta ao normal. Eu odeio os spans, e também os captchas. então queria trabalhar com esse plug-in.

Abraços.

# 33° ronaldo December 22nd, 2009 às 2:28 AM GMT

<

CO

BUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUG

#
#

# 34° Simone Campos January 22nd, 2010 às 12:16 PM GMT

Vou dar uma olhada…

# 35° Barbara April 30th, 2010 às 11:56 AM GMT

Muito bom o blog.

# 36° Verônica August 1st, 2010 às 5:24 PM GMT

Muito boa a dica.

# 37° Tweets that mention japs.etc.br -- Topsy.com August 30th, 2010 às 12:17 PM GMT

[...] This post was mentioned on Twitter by Guilherme Nagüeva, kleber silva. kleber silva said: RT @nagueva: Melhor antispam pra WordPress que existe: http://is.gd/eLAje [...]

Avisos
Os ítens com asterisco ( * ) são campos de preenchimento obrigatório.
Todos os links inseridos nos comentários possuem o atributo rel="nofollow" para impedir com que user agents (como os mecanismos de busca) sigam os links inseridos para desestimular spammers.
Todos devem se identificar através de e-mail válido.
Os e-mails dos usuários não serão divulgados no site.
Comentários:
  • Sigam-me no Twitter

Sobre o Japs

Foto do autor Flávio Theruo Kaminisse O Japs é o site pessoal do Flávio T. Kaminisse, atualmente trabalha com Análise de sistemas na Webroom Soluções Interativas, é formado em Ciência da Computação pela Universidade Federal de Uberlândia, é também especialista em Banco de Dados, tendo concluído sua pós-graduação pela Unitri, gosta de mexer um pouco com Linux, é responsável pela área de TI do Charges.com.br e Webinsider, e ainda arruma um tempinho para escrever sobre tecnologia, javascript, AJAX, desenvolvimento e outros assuntos interessantes por aqui. Leia mais.

Você ainda não tem estes livros na sua biblioteca? Cuidado! Você está ficando desatualizado.

  • Sistemas de Banco de Dados - Ramez E. Elmasri, Shamkant Navathe
  • PHP: a Bíblia - Tim Converse, Joyce Park
  • MySQL: a Bíblia - Steve Suehring
  • Fundamentos do Ajax - Ryan Asleson, Nathaniel T. Schutta
  • Hackers Expostos - Stuart Mcclure, Joel Scambray, George Kurtz
  • PHP 5: Programação Poderosa - Gutmans, Bakken, Rethans
  • Não me faça pensar! - Steve Krug
  • Google Adwords a Arte da Guerra - Ricardo Vaz Monteiro
  • Sandman - Neil Gaiman
  • The Art and Science of Web Design - Jeffrey Veen
  • Ansiedade de Informação 2 - RICHARD SAUL WURMAN
  • Mobile Web Design - Cameron Moll

838 assinantes Assine o feed do Japs

Artigos por e-mail

Receba os últimos artigos do Japs no seu e-mail.


Encontre-me

O Japs recomenda

Blogs amigos:

Alguns sites e blogs que valem a pena ser visitados:

Pessoas que trabalham comigo:

Sites dos colegas de trabalho na Webroom.

Já trabalharam comigo: