Como bloquear user-agent pelo .htaccess

Na semana passada o site de um cliente foi atacado por spammers devido a uma falha de segurança do WordPress e ontem um amigo notificou que o Eu Compraria estava fora do ar por falha do banco de dados – demorei um pouco para identificar isto pois o servidor e o banco continuavam “de pé”, mas analizando o processamento do servidor vi que constantemente o MySQL estava estourando o processamento.

Achei estranho e fui verificar os logs do servidor e encontrei a causa do problema: um bot fazendo requisições constantes para o And After, para páginas de busca e tags (onde meu sistema de cache, confesso, não é muito eficiente).

O primeiro passo foi bloquear o bot pelo IP via .htaccess para sanar o problema.

Como bloquear um IP via .htaccess

Sem mistérios, nas regras de .htacces adicionei o seguinte:

Order Deny,Allow
Deny from 54.197.86.53

Problema resolvido temporariamente.

Mas claro que durou pouco, pois o bot tinha um tange de IP para trabalhar. Ao invés de ir bloquando IP por IP – ou bloquear o range de IPs, como este bot se identificava via user-agent, achei que seria uma solução mais elegante e duradoura.

Como bloquar user-agent via htaccess

O primeiro passo é identificar o user-agent que você quer bloquear, para isso basta ver os logs do apache.

tail -f /path_dos_logs_do_dominio/access.log

No meu caso o bot se identificava como BDBBot. Depois de identificar quem queremos bloquear vamos criar as regras no htacess, explicadas abaixo.

Na primeira linha vamos determinar uma “env” chamada bad_bot se o user-agent casar com BDCBot (usando o modsetenvif do Apache). Você pode repetir esta linha para todos os user-agents que deseja bloquear.

Com esta identificação de user-agent e com o env configurado quando “casar”, você só precisa escrever a regra para negar os acessos sempre que o env for bad_bot.

Para o meu caso adicionei o seguinte ao htaccess:

BrowserMatchNoCase BDCBot bad_bot
Order Deny,Allow
Deny from env=bad_bot

Agora sim, problema com este bot resolvido de uma forma um pouco menos temporária.

Ainda neste tópico li sobte uma abordagem curiosa e, ao meu ver, perigosa que é fazer o inverso: ao invés de bloquear os spammers, bloquear tudo e permitir apenas os bots / crawlers conhecidos.

Eu não arrisco, mas se você se interessar pode conferir o tópico sobre o assunto.

Exibindo a quantidade de comentários do tipo spam no WordPress

Uma das pestes para quem gerencia blogs são os spams em comentários. Atrapalham, enchem a paciência e nos fazem perder tempo moderando-os. No meu blog pessoal (onde uso WordPress como gerenciador), resolvi fazer um contador de spams. Como?
Nos templates do WordPress o desenvolvedor tem no contexto um objeto $wpdb, que abstrai o banco de dados do mesmo. Ele tem um método, get_results(), onde você pode fazer uma query SQL. No caso, ao invés de chamar a tabela pelo nome dela, podemos usar $wpdb->comments (esse atributo retorna o nome da tabela; vale a pena fazer dessa forma, pois com isso mantemos um certo desacoplamento). A coluna na tabela que marca o status de um comment é a comment_approved; spam é o status para comentários marcados como spam.

Então, o código é:

 <?php
    global $wpdb;
   $spamComments = $wpdb->get_results("SELECT * FROM " . $wpdb->comments . " WHERE  comment_approved="spam"");
   echo sizeof($spamComments);
?>

 No caso, eu poderia ter usado o COUNT do SQL – seria mais performático, inclusive – mas retirei esse código de uma implementação que fiz onde eu precisava da lista de comentários futuramente…

Protegendo seu e-mail de spammers

Infelizmente muita gente acha que pós venda ou e-mail marketing é simplesmente sair enviando e-mails adoidado para qualquer um que apareça na frente. Isso é spam. Aqui tem algumas dicas sobre como fazer um e-mail markerting eficiente, hoje escrevo para uma dica de como evitar que seu e-mail caia nos bancos de dados de spammers…

Para montar um banco de dados com e-mails os spammers utilizam bots que navegam livremente pela internet, coletando todos os e-mails que  eles conseguem "ler" nas páginas, então quando você coloca seu e-mail em um texto ou um link de mailto ele terá chances (enormes) de parar em algum CD vendido na Santa Efigênia com 2 milhões de e-mails.

 

Como você pode ajudar combater o SPAM?

Aqui vão duas técnicas que não levam tempo nenhum e vão ajudar a reduzir o spam – para você e para todo mundo. Se a maioria dos usuários fizesse isso…

 

Mas você quer facilitar a vida do usuário, divulgar seu e-mail e deixar seu cliente a um clique de escrever um e-mail, certo? O pinceladas da web divulgou uma excelente solução em JQuery (do kevinleary) que pega seu e-mail "camuflado" e torna ele um link quando o usuário acessa a página.

Facilita a vida dos usuários do seu site sem deixar seu e-mail ser lido por bots – a não ser que elex executem o javascript antes de ler a página, claro.

Como proteger o e-mail de spammers?

Antes você precisa ter o JQuery "instalado" no seu site, se você ainda não tem recomendo ler o post do Chris sobre a Google AJAX Libraries API que mantém seu site com sua biblioteca favorita sempre atualizada e sem ter que hospedar arquivo nenhum.

Com o Jquery configurado no site, vamos ao código que faz a mágica acontecer: 

$(document).ready(function(){
	$("a[rel=´email´]").each(function(){
		// Modifica o valor de mailto:
		var mailtoVal = $(this).attr(´href´);
		mailtoVal = mailtoVal.replace("[email]","mailto:");
		mailtoVal = mailtoVal.replace("[at]","@");
		mailtoVal = mailtoVal.replace("[dot]",".");
		// Gera automaticamente a tag title para os usuários
		var mailtoTitle = mailtoVal.replace("mailto:","Email: ");
		$(this).attr(´title´,mailtoTitle);
		// Evento onClick
		$(this).click(function(){
			window.location.href = mailtoHref;
			return false;
		});
	});
});

E para colocar o link protegido é simples, seu e-mail deve ficar assim:

Contato

Simples e eficiente! 😉

Adorei ler isso: Spammer condenado a 9 anos nos EUA

Essa foi a melhor notícia que li nos últimos dias, o spammer Jeremy Jayne foi condenado nos EUA pelo envio de 50 mil e-mails a assinantes da AOL em três dias no ano de 2003.

Foi a primeira condenação por envio de SPAM nos EUA, e aconteceu dia 29/03 (sexta feira passada), agora eu penso, se nos EUA a primeira condenação aconteceu só semana passada quanto tempo leva para isso acontecer no Brasil? 🙁

Jeremy Jaynes cumprirá nove anos de prisão por infringir o limite de e-mails enviados em um período de 24 horas (dez mil e-mails) e por falsificar informações dessas mensagens. Em 2003, ele enviou 12.197 e-mails no dia 16/07; 24.172 no dia 19/07 e mais 19.104 no dia 26/07.

IDG NOW

Apesar de ser um grande filho da chato, Jayne não era de todo bobo: para cade e-mail enviado foi criado um remetente falso (easy…) usando milhares de endereços IP (ok, demais pra mim, Jayne) e links de sites diferentes.

Ele poderia ser condenado a 20 anos, mas pegou apenas 9. Agora você pergunta se vale a pena, pegar 9 anos de prisão para "fazer propaganda invasiva". Pode valer.

Fui pesuisar sobre e no Junkfax, e…

"… Jeremy lists his net worth at $24 million and he was making at least $500K/mo in his spamming business before being arrested."

Junkfax

Tradução livre: vale a pena pra caral*** Jeremy foi para a prisão aposentado, digamos assim.

Todas as vítimas eram clientes da AOL, na casa do spammer foram encontrados cds com 176 milhões de endereços de e-mails; 1,3 bilhão de nomes de usuários de e-mails e outras informações privadas de clientes da AOL (IDG Now informa…).

Uma curiosidade que mostra o tamanho do problema dos spams é um anúncio do diretor técnico de operaçõs de e-mail da AOL (Brian Sullivan): a empresa recebe de sete a dez milhões de reclamação de spam por dia, que pepino, hein?

Precisa de mais motivos para denunciar os spammers?
Denuncie!

Só denunciando é possível levantar dados – e combater – este problema. Faça sua parte por uma internet melhor, vamos ver mais "enlarge…" atrás das grades. 😉

Agora é esperar nove anos para poder sair, Jayne.

Boa sorte.

Via IDG NOW

Como você pode ajudar combater o SPAM?

Spam você deve saber o que é, mensagens indesejadas que entopem nossa caixa de entrada do e-mail, consomem banda do servidor e só atrasam o nosso dia.

Você sabia que 96% dos emails que circulam na internet são SPAMs?
Lamentável, não? Mas o que você faz para ajudar? Mandar para o Lixo Eletrônico não ajuda muito.

Vou dar duas dicas de como prejudicar e infernizar a vida destes spammers que tanto me incomodam.

 

1. Denunciar

A primeira maneira é denunciar o spammer.

Como denunciar?
Pedir para sair da lista ou tentar responder a mensagem é inútil e só vai piorar a situação – você vai dar certeza que seu e-mail é válido e vai continuar recebendo (talvez até mais) e-mails não solicitados.

Para denunciar um spammer você precisa primeiro abrir o cabeçalho da mensagem e copiar os dados, feito isso você pode fazer a denuncia.

Denunciar para quem?
A denúncia deve ser feita diretamente no servidor utilizado para o envio das mensagens. Para descobrir o servidor você precisa do IP que está no cabeçalho do e-mail.

Como descobrir qual o provedor do IP?

Através do SpamCOP você faz um cadastro para receber uma autorização e  com esta autorização você pode denunciar spammers.

Acabei de fazer minha conta e denunciar dois spammers (em servidores brasileiros). Tudo o que eu precisei fazer foi copiar o cabeçalho inteiro do e-mail, o SpamCOP identifia o servidor e com mais um clique eu fiz a denúncia diretamente para o servidor e também para o CERT. Eficiente, não?

Fazendo isso você ajuda a dificultar a vida dos spammers, eles acabam sendo punidos por seus servidores (é o que se espera, né?) e os servidores entram em blacklists, evitando que outras centenas de milhares de pessoas recebam este mesmo e-mail.

No meu caso denunciei um cliente da DIVEO, de um spam que recebo SEMANALMENTE. Agora basta esperar para ver se a Diveo é uma empresa séria e vai punir/banir seus clientes ou se é uma porcaria e isto vai continua.

Vou esperar para ver e publicar a atitude da empresa.

Porquê você deve denunciar?
Pelo mesmo motivo que você deve fazer queixa na polícia. O seu problema pode não ser resolvido naquele momento, mas você vai ajudar a produzir estatísticas reais e também a previnir que outras pessoas (e até você mesmo) sejam vítimas do mesmo problema.

Então fica a dica do SpamCOP para denunciar spammers, beleza? 😉

 

2. Enganar bots que coletam e-mail
Agora a dica que eu li no Dicas Online, que é o Spam Poison. O nome já diz o que faz: envenena o spam.

Como funciona o Spam Poison?
Os spammers utilizam robôs (spiders) que navegam pelas páginas em busca de e-mails que são cadastrados em suas bases de dados. Estes robôs vão "clicando em tudo" e coletando dados, certo?

O Spam Poison redireciona estes robôs para um loop infinito de diversas páginas (sempre com urls diferentes, para enganar a máquina) com dezenas de e-mails diferentes.

O resultado é que o spider armazena milhares de e-mails que não existem, ao disparar o spam todos estes e-mails irão voltar para o spammer. Isso vai gerar enorme desperdício de tempo, banda no servidor e principalmente trabalho para o spammer.

Como eu posso ajudar?
É simples, seu site só precisa ter um link como este:

Espalhe este link e ajude a combater o spam!  

Agora é só colocar este link no blog, no site da empresa, no portfólio… Que tal convencer seus clientes a utilizarem também? 😉

Para mais informações sobre o Spam Poison no site oficial

 

Será que se a maioria dos usuários (só os mais geeks mesmo, que passam horas navegando) fizessem isso para a maior parte dos spams que recebe acho que estes 96% reduziriam bastante? 

Acredito que sim.
Mas só pelo fato de dificultar a vida destes malditos eu já me sinto feliz…