Temas do WordPress – Copyright a troco de segurança
Uma das primeiras coisas que uma pessoa com um blog WordPress instalado num alojamento próprio faz, é mudar o tema (eu incluído! ). E o que não faltam são galerias que têm temas muito bons, e com aspecto moderno.
O que não sabemos é que alguns destes websites incluem “surpresas” nos temas. E por surpresas, digo código ofuscado de maneira a não ser perceptível pelo administrador do blog. Muitos websites alegam que se trata de código para manter os devidos créditos aos autores dos temas, e o ofuscam para mante-los. Mas será apenas esse o conteúdo que está por trás desse bloco de código? A verdade é que muitas vezes também é incluído código que permite rastrear utilizadores, incluir links para blackhat SEO, entre outras coisas.
Para mostrar os efeitos destes pequenos blocos de código, aparentemente inofensivos, escolhi 4 websites ao acaso que oferecem temas gratuitos (os quais não os vou referir por motivos de privacidade, mas não são raros), e ver que surpresas nos deixam eles nos temas descarregados. Vamos lá então saber qual o aspecto dos códigos, em que ficheiros os encontramos, e principalmente, saber o que fazem exactamente.
Para auxiliar a tarefa de colocar os códigos (alguns deles gigantes!), e obter no browser o seu resultado, resolvi usar o serviço IdeOne (que foi sugerido pelo Ivanoel, aqui no blog): para ver uma amostra do código em cada caso, sigam o link indicado.
Rounded v2 Blue Edition
Código (footer.php): http://ideone.com/AryLjdSU
A primeira impressão que dá ao olhar para este código é que se trata de uma função rotineira de ir buscar/escrever opções à base de dados do WordPress. E na verdade até é, mas são opções que de nada trazem vantagens ao utilizador.
Esta função tenta puxar da base de dados uma data e um id, que são gerados caso ainda não estejam lá. Em seguida, o script tenta verificar se existe alguma forma de abrir uma ligação com um website: são feitas tentativas com recurso a sockets e à função PHP file_get_contents. Neste processo, são enviadas duas informações: o host no qual o WordPress está instalado, e o post/página visitado pelo utilizador. Contactado o servidor e enviadas as informações, este devolve uma resposta, que pelo restante código, creio que seja um ID exclusivo, para identificar unicamente a instalação do WordPress, mesmo que esta seja mudada para outro site.
Aparentemente nada mais é enviado. E para que servem estas informações? Apenas eles sabem. Mas uma coisa é certa: são enviadas sem consentimento do utilizador, e são recolhidas sem saber quais os motivos.
Prejudicial: Sim
Consequências: São enviadas e recolhidas informações sobre as páginas visitadas sem consentimento do administrador do blog.
Corponisa
Código (footer.php): http://ideone.com/JdfDmSQT
Este excerto de código, à semelhança de muitos outros que andam por aí, usa Base64 para ocultar algum do código a correr. A primeira variável no código contém o que realmente interessa. A esse conteúdo, faz-se decode, e é obtida uma string, mas propriamente um pedaço de código HTML com alguma PHP à mistura, mas de forma algo ilegível. É feita ainda outra passagem por outra função que substitui alguns caracteres, algo à semelhança de uma cifra de César. No final de contas, obtemos uma copyright normal, com alguns endereços extra, a saber: website onde o tema foi retirado, website de uma empresa de hosting. Não são prejudiciais, mas podem ser consideradas como tácticas para manipulação de SEO à custa de outros blogs.
Prejudicial: Não
Consequências: São apresentados algumas ligações extra no fundo da página. Não são directamente prejudiciais, mas podem ser considerados como técnicas de manipulação de SEO para “subir” no ranking à custa de outros blogs.
Redie
Código (footer.php): http://ideone.com/wihAr577
À semelhança do anterior, este ficheiro contém código ofuscado usando Base64. No entanto, neste a técnica é muito mais simples, não havendo mais nenhuma tentativa de esconder o código. Os conteúdos também são igualmente simples: um pedaço de código HTML, que contém uma ligação para outro website. uma particularidade do código é que esta ligação é apenas mostrada quando é acedida a página inicial do blog. Talvez seja por questões de SEO, para não serem considerados excesso de links, ou simplesmente porque a página principal pode ser mais relevante para os motores de busca.
Prejudicial: Não
Consequências: É apresentado uma ligação extra no fundo da página, quando o visitante visualiza a página de entrada do blog. Pode ser considerada técnica para explorar SEO.
Andreas 08 3 cms
Código (footer.php): http://www.ideone.com/PbbtlS6O
Não queria ser repetitivo, mas este também usa Base64. É uma opção muito comum, pois é um tipo de ofuscação que faz um bom trabalho a nível visual, sem afectar a performance, para além de vir de raiz no PHP. A particularidade deste código é que após o PHP efectuar o decode do Base64, é obtida uma string comprimida em Gzip. Já o conteúdo também não tem nada de surpreendente: copyright e algumas ligações. Apenas algum código PHP para obter informações como o nome do blog, ou o ano para actualizar a copyright.
Prejudicial: Não
Consequências: Algumas ligações adicionais no final do website, que podem ser usadas para explorar SEO.
Conclusões
Depois disto, podemos perceber rapidamente que podem estar mais coisas que simples créditos por baixo de todo aquele código esquisito. Ligações remotas a domínios desconhecidos, sem qualquer alerta ou consentimento do utilizador, entre outras possíveis acções (tudo depende dos privilégios que o servidor tem em termos de PHP), são sempre indesejáveis.
A minha recomendação passa por remover os códigos, mas como um esquema bem delineado que é, o tema poderá deixar de funcionar. Para os mais entendidos, podem remover o código em questão, e no código fonte HTML, identificar que etiquetas/estilos CSS estão em falta, e consertar assim o tema.
Fico-me por aqui quanto à análise. Qualquer dúvida ou sugestão, é sempre bem-vinda. E por fim, o conselho: verifiquem sempre os vossos temas antes de os correrem no servidor, sempre! Qualquer dúvida relacionada com isto, estou aqui para esclarecer. Até mais!
Lista de ferramentas e endereços web utilizados
- Base 64 Decoder
- Notepad++, com sintaxe colorida e realce de variáveis
- Um bocado do meu cérebro e da minha paciência para ver tantas letras e números esquisitos xD
Notas legais
Os temas aqui mostrados são apenas exemplos, e não é intenção deste artigo acusar os respectivos autores da adição destes códigos. Os temas usados neste artigo são apenas para exemplo, e qualquer outro tema pode conter amostras destes códigos, assim como estes temas não incluírem código adicional, quando descarregados de websites fidedignos. As imagens utilizadas no artigo são dos seus respectivos autores.
7 Comentários