Verdadeiros manuais para combater spam nos comentarios em sites que utilizam o Movable Type, doravante MT, foram escritos enquanto eu estava em recesso com esse blog. Antes desse tsunami de spam eu já havia proposto uma solução rapida e me retirei da arena quando os leões do spam ainda eram gatos. Pois então no retorno voltarei a sujar minhas sandalias da humildade na poeira do coliseu. Vejamos o que se pode fazer para vencer os leões.
O problema de spam se divide em soluções que vão elaborar sobre como:
1. Evitar que ele entre
2. Descarta-lo depois que ele entrou
O segundo item acima é similar as medidas preventivas contra roubo. O alarme somente dispara depois que o ladrão já entrou. E se o ladrão já entrou ele de alguma forma já fez ou fará algum estrago antes de sair. Não queremos isso.
O unico modo de evitar cem por cento o roubo seria o ladrão não saber onde fica a janela de sua casa/blog. No MT a janela alvo do spammer é o famigerado script que faz a publicação dos comentarios (trackback é similar, porem não é assunto deste post). Descoberto esse ponto fraco somente lhe resta instalar extensões e plugins complicados que irão tentar barrar o assedio de seu mais recente amigo da onça. É ali que concentrarei minhas energias antes de partir para soluções mais sofisticadas que exigem extensões ao MT puro e simples.
Como quase todos sob MT, tambem sou alvo de spam e portanto manterei-los atualizados sobre a efetividade da solução aqui adotada que serve desde a versão 2.661 do MT:
A) Renomeie o script de comentarios (mt-comments.cgi)
Spammers acham o local desse script procurando no Google. Atraves de ou sua ferramenta FTP ou pelo painel de sua hospedagem, adote um novo nome para o script "mt-comments.cgi" , não esquecendo do sufixo .cgi Use um nome bem esquisito do tipo "euodeiospam.cgi" Verifique as permissões desse arquivo segundo as instruções do próprio MT (CHMOD 755).
B) Modifique o arquivo de configuração do MT, chamado "mt.cfg" para registrar essa troca de nome. No mt.cfg procure por essa seção:
# CommentScript mt-comments.pl
# TrackbackScript mt-tb.pl
# SearchScript mt-search.pl
# XMLRPCScript mt-xmlrpc.pl
# ViewScript mt-view.pl
Remova o # do inicio da linha "CommentScript", e somente dessa, que determina o nome do script a ser utilizado pelo MT. A seguir substitua "mt-comments.pl" pelo nome escolhido por você no item A acima. Salve e faça upload da nova versão de seu mt.cfg Republique seu blog e verifique se tudo está funcionando a contento, ou seja, se você pode publicar comentarios. Caso não, pare, releia, refaça ou peça ajuda antes de prosseguir.
C) Incluir no HEAD de suas templates de indice e arquivos (individual, categoria e mensal) o seguinte codigo em Javascript:
<script language="javascript" type="text/javascript">
function MTAntispam(entryid) {
cgiurl = "<$MTCGIPath$>";
s = "<$MTCommentScript$>";
q = "?entry_id=";
mylink = cgiurl+s+q+entryid;
return mylink;
}
</script>
D) Alterar o link para os comentarios das citadas templates:
DE:
<MTEntryIfAllowComments>
| <a href="<$MTCGIPath$><$MTCommentScript$>?entry_id=<$MTEntryID$>" onclick="OpenComments(this.href); return false">Comments (<$MTEntryCommentCount$>)</a>
</MTEntryIfAllowComments>
PARA:
Com popup (abre nova janela)
<MTEntryIfAllowComments>
<a href="#" onclick="OpenComments(MTAntispam(<$MTEntryID$>)); return false" title=" Comentarios ">comentarios(<$MTEntryCommentCount$>)</a>
</MTEntryIfAllowComments>
OU ENTÃO:
Sem popup (abre na mesma pagina)
<MTEntryIfAllowComments>
<a href="javascript:window.location(MTAntispam(<$MTEntryID$>))" title=" Comentarios ">comentarios(<$MTEntryCommentCount$>)</a>
</MTEntryIfAllowComments>
E) Ultimo passo: republicar todos os seus arquivos e indice principal. Testar blog e publicação dos comentarios. Caso queira, de uma olhada no fonte dessa pagina para ver a solução funcionando. Por fim, nunca, jamais, coloque o formulario de envio de comentarios em uma pagina estatica como por exemplo os arquivos individuais.
Look ma! Sem alterar codigo fonte, sem instalar nada e sem importunar meus visitantes com senhas, cadastros e demais parafernalias. O sujeito terá que visitar pessoamente seu blog para deslindar isso. Então passa a ser stalker e não mais spammer.