Spam contra-ataca

com algum sucesso

Um ano passado desde que mudei o sistema deste blog, desde como faço posts, como gero os RSS para cada categoria, como organizo a base de dados de cada categoria, como envio um email para mim quando alguém adiciona um comentário e ainda os filtro, já muito trabalho em actualizações isto levou. Já vamos em 2009 e os spammers continuam a tentar encontrar falhas para continuarem a fazer o que tanto gostam: encher a zona dos comentários com lixo autêntico.

Desta feita dão pelo nome de Neo, Jane, Lee, entre outros. Todos com endereços @yahoo.com. São uma praga autêntica. Começando pelo início, eu antes não tinha nenhum mecanismo que impedisse qualquer pessoa de aceder à zona de comentários de cada post e fazer "post" (submit). A certa altura o meu site foi apanhado por algum bot e toca de rebentar com isto. Tiveram algum sucesso e ainda me deram uma carga de trabalhos porque recebo um email de notificação a cada comentário adicionado e tive de andar durante dias a apagar lixo no email e no site. Lá resolvi entrar no jogo deles e criei um filtro anti-spam simples: apenas pedia que inserissem o número que estava à frente de uma input-box. Algo natural para um humano mas, pelos vistos, muito fácil de ser resolvido por um bot ou pela besta (que não tem outro nome) que o programou para me chatear o juízo. Passadas umas semanas, toca a apagar uma data de mails e comentários que, ainda se fossem interessantes..., mas não: puro lixo.

A coisa foi ficando negra com a carrada de comentários spam diários. Como não estava com muito tempo (e ainda não estou), a certa altura arranjei um furo e meti uma manha do tipo gerar o mesmo número para ser preenchido na form, mas o utilizador teria, então, de somar um outro valor. No fundo aparecia algo como: "5463 + 7". Isto em texto. Depois o sistema testava no servidor (depois de fazer parsing à string inserida) e em javascript, primeiro, para quem tivesse enabled no browser. Muito giro e tal, mas o bot continuou a melhorar e passava este teste também. Resolvi hoje reforçar de novo o filtro e agora gero duas coisas: primeiro uma string com 10 caracteres entre A-Z, a-z e 0-9 e depois um número N entre 1 e 10 para o utilizador inserir o N-ésimo caraceter dessa string. Algo como: Enter the 5th character from the string "O6FEKmKC3G". Meti agora a funcionar depois de alguns testes. Vamos a ver se a coisa se aguenta. Será que esta mesma frase mas em português teria mais garantia?