Como ocultar a versão do WordPress

Desde o WordPress 2.5 (se não me falhe a memória), a Automattic removeu o código da versão do sistema do header.php, e adicionou-o às chamadas que a Template Tag faz. Na prática, isso impede que os usuários removam a indicação da versão do WordPress usada, algo muito importante para a geração de dados de uso da ferramenta. Na página gerada no navegador, o código da versão fica assim:

Mesmo antes dessa mudança estrutural, eu já mantinha tal informação no cabeçalho do blog, justamente para ajudar os desenvolvedores que, a bem da verdade, não cobram um tostão pelo excelente produto que fazem e melhoram constantemente. Ocorre que, além desse ato nobre, exibir a versão do WordPress que se está usando tem um efeito colateral ruim e até perigoso: expõe seu domínio a ataques.

Muitas das atualizações do WordPress são lançadas para corrigir brechas de segurança. Essas brechas, quando tornadas públicas, são usadas por pessoas mal intencionadas para causar danos em blogs, gerais ou específicos. No caso dos blogs gerais, ou seja, um ataque feito sem destinatário específico, os crackers utilizam a exibição da versão para limitar o ataque, tornando-o mais efetivo usando menos “força bruta”. Ao invés de tentar o ataque em todos os blogs WordPress que o programa encontrar, este se limita a agir contra aqueles que usam a versão afetada ou anterior.

A solução, pacífica e benéfica aos bloggers e à Automattic, é manter seu WordPress atualizado. Eles (a Automattic) fazem de tudo para manter o sistema imune a falhas, portanto, cabe ao usuário manter seu sistema atualizado também. Com a nova sistemática, onde os desenvolvedores indicam quais arquivos foram modificados, a atualização é ainda mais simples e rápida.

Dito tudo isso, trago a dica prometida no título do post. Para não ficar dúvidas, repito, agora em termos claros: evitem usar essa dica, mantenham o WordPress atualizado. Existem cenários bastantes específicos na qual a ocultação da versão faz sentido; para todo o resto, o ideal é deixá-la lá.

A dica é simples. Abra (ou crie, caso não tenha) o arquivo functions.php, do tema, e acrescente a seguinte linha nele:

remove_action('wp_head', 'wp_generator');

O remove_action incide sobre a função wp_generator, responsável por “puxar” e exibir a versão do WordPress, e impede sua execução. Simples assim. Como o functions.php é carregado antes do tema, a mágina acontece.

Outra dica, essa mais completa, é a instalação do plugin Secure WordPress. Além de fazer tal remoção automaticamente, ele também acaba com outras referências a versões, em outros pontos do WordPress, como no feed, e traz outras defesas, como a não-exibição de erros no login, o acréscimo de um index.html virtual no diretório de plugins, entre outras.

Usem com moderação e responsabilidade.

[Via WP Recipes]

Redirecione o site inteiro via .htaccess

Mudar de domínio é difícil. Não bastasse o transporte dos arquivos e bancos de dados de um servidor para outro, ainda temos o redirecionamento do endereço antigo para o novo, que para muitos é um bicho de sete cabeças. Digo, para quem sabe, pode até ser fácil, mas para quem não tem muita intimidade com servidores e coisas do tipo, a coisa complica.

Uma solução simples é pedir ao suporte do servidor que adicione o domínio novo: assim, ambos os domínios, o original e o antigo, funcionarão. Não sei se isso caracteriza conteúdo duplicado, prática que detona qualquer estratégia de SEO, mas na dúvida, evito. Afinal, fazendo isso, os dois domínios continuam acessíveis, cada um em sua própria URL, ambos caindo no mesmo conteúdo. Outro efeito colateral ruim é a descentralização da marca, afinal, se com um TLD já é difícil fixar o domínio na cabeça das pessoas, imagine com dois ou mais?

Como se vê, essa não é a melhor saída. Precisando de uma solução, já que tinha que redirecionar dois domínios (.com e .com.br) para o novo (.ig.com.br), corri atrás de uma mais amigável e transparente, tanto para o leitor, quanto para os mecanismos de busca. E a encontrei. Não lembro aonde, mas encontrei. Funciona via .htaccess, e é bem simples de ser implementada.

O código é o seguinte:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?antigo.com [NC]
RewriteRule ^(.*)$ http://www.novo.com/$1 [R=301,L]

Copie, cole no seu .htaccess, e faça as devidas modificações. Se houver mais de um domínio antigo, repita as duas últimas linhas na seqüência, alterando, obviamente, o domínio antigo.com pelo antigo2.com. Simples assim.