Por indesejáveis que sejam, e desagradáveis os seus autores, não podemos evitar que façam links para os nossos posts e blogues. Mas há formas de destruir grande parte do efeito de um link, frustrar as intenções de quem os faz e evitar a maior parte do tráfego induzido por pessoas cujas “recomendações” dispensamos.
Não se trata de fórmulas mágicas. A arquitectura da Internet — uma rede de redes — e a filosofia do hipertexto blindam por completo qualquer tentativa de manter quintas isoladas. Nem mesmo os mestres chineses conseguem bloquear por completo o acesso a servidores: na Internet há sempre formas alternativas de chegar a um dado ponto a partir de outro, não importa o que se faça para o evitar. Só há uma forma comprovada de o fazer: desligar a corrente.
Mas isto não impede que alguns filtros e técnicas tenham graus de eficácia aceitáveis. Sobretudo tendo em conta a relação custo (uns minutos gastos) / benefício (a maior parte das pessoas que viriam dali, já não vêm; o link é inutilizado).
Há mais de um ano que bloqueio o tráfego oriundo de três blogues (e ao fazer a pesquisa de rotina para este post tive, até, o grato prazer de verificar que um deles tirou o link para o Certamente!, o que considero uma vitória pessoal.)
E como faço tal coisa? Uso algumas linhas de código muito fáceis de empregar, tão fáceis que qualquer pessoa pode repetir no seu blogue ou página, como comprovei esta semana ao ceder o código a um amigo que por e-mail me perguntou: como é que eu consigo despistar o link que o meu troll de estimação fez no blog dele para o meu?
O mais curioso é que o e-mail chegou precisamente quando eu estava a iniciar este post, que já me andava na cabeça há meses!
Respondi-lhe e em menos de dez minutos resolvemos o assunto — infelizmente, não vemos as caras dos desarmados no momento em que percebem que o seu link deixou de funcionar.
Ou por outra: passou a funcionar de outra maneira.
No meu caso, simplesmente redirecciono os leitores para o site de onde vieram. Não pretendo publicitar que blogues excomunguei, pelo que farei a demonstração usando uma página que eu próprio criei. Ora vá aqui, leia, experimente — e regresse premindo o botão de voltar do seu browser.
Como viu, o link aparentemente não funcionou.
O que se passou na realidade, mas a uma velocidade imperceptível a olho nú, é que durante milisegundos o seu computador “visitou” o meu servidor, mas este analisou a sua proveniência e com base nela recusou mostrar-lhe o site, devolvendo-o à página de onde tinha vindo.
Repetindo o que disse acima, é claro que isto não evita que a pessoa visite mesmo o nosso endereço. Basta copiar o endereço e introduzi-lo manualmente, em vez de clicar. Mas a maioria das pessoas não o fará. E o sinal de indesejado fica claro num ambiente onde em regra os sinais são pouco elucidativos — a menos que sejam expressos directamente.
Nuances, também vivemos delas.
O melhor disto é que a explicação é mais complicada do que o código. Vamos lá.
Como proceder
(Esta técnica foi produzida em código PHP mas é traduzível para outras linguagens. O exemplo é de aplicação imediata, por copia+cola, a um blogue em WordPress)
Localize o ficheiro index.php na raiz do seu blogue. No WordPress é simples: menu Gerir -> Ficheiros e clique no Modelo do Índice Principal (ver figura).
O conteúdo actual do ficheiro deverá ser este ou muito similar:
<?php
/* Short and sweet */
define('WP_USE_THEMES', true);
require('./wp-blog-header.php');
?>
O que vamos lá colocar é isto (a negrito os acrescentos e a vermelho o que deverá mudar):
<?php
$idepassear = 0;
if (preg_match("/lnksts/", $_SERVER['HTTP_REFERER'])) {
$idepassear = 1;
}
if ($idepassear == 1) {
header("HTTP/1.1 307 Temporary Redirect");
header("Location: http://lnkths.com/certamente-teste");
exit;
}
/* Short and sweet */
define('WP_USE_THEMES', true);
require('./wp-blog-header.php');
?>
A explicação do código
$idepassear é uma variável. O nome dela… foi suavizado para publicação e trata-se de homenagem a um hacker que me ensinou umas artimanhas e que tem um gosto particular pelo calão. Podia chamar-se $variavelum. É inicializada a zero (era dispensável; mas incluí-a por uma questão de clareza — e não só; num post lá mais para a frente voltaremos a esta variável para mais acções de ciberdefesa).
A linha seguinte verifica se o cliente vem de alguma página através de um link e se sim, verifica se o sítio de origem contém a expressão lnkths. Se contiver, a variável $idepassear passa a ter o valor 1. Com essa expressão, qualquer link produzido em lnkths.com será dinamitado. (Cuidado com a expressão a escolher para colocar aqui; se for demasiado abrangente, pode bloquear mais endereços do que gostaria. Imagine que lá metia “blogspot”…)
A seguir, o coração do sistema (como eu gosto desta expressão): se o conteúdo de $idepassear for igual a 1, o cabeçalho (header) que o index.php envia para o browser contém a nova localização para onde o cliente deve ir. Como já disse, eu devolvo-os à procedência mas podemos aí colocar qualquer endereço! Como Location: http://google.com/search?q=troll ![]()
A parte do código 307 destina-se a eventuais motores de pesquisa que venham por ali: indica um redireccionamento temporário, pelo que o nosso domínio não será afectado (sem a indicação, não é claro se poderia perder algum “sumo” em termos de Google, que desconfia dos redireccionamentos, sobretudo dos condicionais. Não considerei no âmbito deste post qual o melhor código de redireccionamento — que, estou certo, alguns leitores gostarão de debater, e eu também.)
Se a variável $idepassear contiver o valor 0, o index.php salta para a instrução seguinte e desenvolve-se o pedido de página normal.
É importante
1. fazer primeiro uma cópia de segurança do conteúdo do index.php
2. copiar o código tal e qual, basta uma aspa a menos ou a mais, ou a omissão de um ponto e vírgula, para o index.php não funcionar! (pode sempre repor o conteúdo salvaguardado e repetir as instruções com mais cuidado)
3. colocar o bloco de alterações ANTES do resto do conteúdo do index.php.
Nota final
No meu caso, o uso destas simples linhas é uma acção ciberdefensiva activa — sobretudo sanitária, devo dizer, tendo em conta os “blogues” que bloqueei. Mas no caso do amigo que já beneficiou do código — que aplicou sem problema algum, embora eu suspeite que foi a primeira vez que mexeu em PHP — trata-se de mais do que isso. Sendo vítima de cyberbullying, evitar os links do seu troll, como carinhosamente o trata, tornou-se também num conforto moral.
Saber que podemos fazer algo, por pouco que seja, que afecte as intenções do perseguidor, é por um lado um sinal interior de resistência e por outro representa uma vitória num jogo onde nos avisaram que só teríamos derrotas.
Adendas
1. Este código é fornecido na versão it works for me — isto é, funciona comigo, é uma prova de conceito despretenciosa e não foi feito a pensar em uso por profissionais, que estão convidados desde já a apresentar versões mais robustas e decentes, que possam filtrar também por agente (browser), por exemplo.
2. Não sou versado em Javascript, pelo que atrever-me a escrever a versão nessa linguagem seria consumidora de tempo e o mais certo era não ficar obra decente às primeiras. Mas certamente algum leitor meu é, pelo que fica o repto para a versão Javascript — que tem a vantagem de alargar a utilização a muito mais plataformas, nomeadamente às plataformas de blogging comerciais como o Blogspot, ou o WordPress.com.
3. A mesma técnica pode ser usada, com eficácia forte e feia, para minorar os efeitos de ataques pontuais, ou súbitos, de spam. Foi, aliás, por aí que começou a vida do meu index.php reforçado com a variável $idepassear. Só mais tarde vi este seu potencial escondido e o modifiquei em conformidade (e o spam combate-se melhor a um nível mais perto da máquina.)

Mas certamente que sim! é uma publicação de Paulo Querido, jornalista e consultor de comunicação. Também autor de livros, artigos e algum código. Na net desde 1989. (
Siga o feed RSS
Receba no e-mail
