sábado, 5 de novembro de 2011

Instalando a Versão Mais Nova do TimThumb

  • O Que é o TimThumb??

O TimThumb é uma pequena aplicação em PHP criada para automatizar o redimensionamento de imagens em páginas web, tarefa especialmente importante na geração de thumbnails para galerias de fotos e imagens. Pode ser usada em qualquer portal cujo servidor suporte PHP, mas tem sido fortemente aplicada em temas para o Wordpress. O próprio Wordpress não usa o TimThumb (ao menos até as últimas versões lançadas até o momento da escrita deste artigo), mas muitos de seus temas o têm usado ostensivamente.

Página do Projeto TimThumb:


  • O Problema da Vulnerabilidade (Falha no TimThumb)

Recentemente, a Avast noticiou ter descoberto uma vulnerabilidade provocada por uma falha no TimThumb que permite a injeção de código malicioso em páginas que utilizam este componente, podendo infectar máquinas clientes e disseminar o código malicioso rapidamente. Mais informações, vide aqui. Uma lista ainda bem incompleta de temas do Wordpress que utilizam o TimThumb está aqui.


  • Como Saber se Uso o TimThumb??

O TimThumb nada mais é do que um arquivo PHP. Nos temas do Wordpress, ele pode ter os seguintes nomes: timthumb.php, thumb.php, image.php, além de alguns outros nomes menos utilizados. O comando abaixo lista possíveis lugares onde o TimThumb pode estar instalado:

cd /var/www [ou o local onde está sua pasta web]
find . | grep thumb.php
find . | grep image.php

Em último caso, você pode varrer todos os arquivos PHP das suas pastas virtuais, com o comando:

find . | grep .php

Anote os arquivos que os comandos geram em suas saídas. Estes são do TimThumb e precisam ser atualizados.


  • Atualizando o TimThumb (Passo-a-Passo)


1- Baixe a versão mais nova do TimThumb em:

http://timthumb.googlecode.com/svn/trunk/timthumb.php

Atente para que o arquivo tem, além do código em si, logo no início, algumas informações de registro, como a versão e a licença. Verifique estes dados na versão que está instalada em cada sistema web seu e valide se a sua versão é mesmo defasada e precisa ser atualizada. A versão pode ser encontrada em uma linha semelhante a esta:

define ('VERSION', '2.8.2');

2- Antes de qualquer coisa, PELAMORDEDEUS, faça backup dos arquivos que você pretende substituir. Mantenha estes backups durante algum tempo, para que seja fácil voltar os arquivos antigos caso algum erro seja detectado com a versão nova.

3- Verifique as permissões que foram dadas a cada arquivo de versão antiga que deve ser substituído. Verifique também o nome de usuário e grupo atribuído a estes arquivos. Para tanto, utilize o comando "ls -l".

4- Copie o arquivo que você baixou, correspondente à versão mais nova do TimThumb, para o mesmo local e com o mesmo nome do arquivo correspondente à versão antiga, de forma a sobreescrevê-lo. Faça isso para cada ocorrência do TimThumb em seus sistemas web. Restaure ao arquivo recém-copiado as mesmas permissões de acesso, nome de usuário e grupo, conforme configurado no arquivo antigo.

5- Teste, teste, teste. Testar nunca é demais.



  • Instalando o TimThumb Pela Primeira Vez!!

Embora este artigo seja inicialmente destinado a ajudar um administrador de sistemas a atualizar o TimThumb, esta seção foi criada para ajudar os desenvolvedores web que acaso venham até aqui e quereiram aprender a usar o TimThumb em seus sistemas.
Antes de instalar, note que o TimThumb é um script PHP e, evidentemente, necessita rodar em um servidor que suporte PHP.
Poucos passos podem propiciar uma boa instalação do TimThumb em seu sistema:

1- Copie o arquivo timthumb.php para seu sistema web, mantendo as permissões, usuário e grupo coerentes com os demais arquivos PHP.

2- No diretório onde o arquivo acima foi copiado, crie duas pastas especiais, que serão usadas para criação, utilização e armazenamento de thumbnails geradas automaticamente pelo TimThumb. Estas pastas são: cache e temp.

3- Defina para as pastas cache e temp a permissão 777. Apenas para estas pastas a permissão terá este valor, e não para arquivos PHP ou qualquer outro trecho de seu sistema!!

4- Verifique outro pré-requisito: é preciso se ter instalada a biblioteca GD Image, e esta precisa ser suportada pelo ser servidor web.


  • Conclusões

Este breve artigo pretende ajudar os administradores a atualizar seguramente um componente interno utilizado em temas do Wordpress (ou em outros sistemas web). Note que o procedimento é válido para qualquer versão, e não apenas no caso mencionado acima, a respeito da falha de segurança de algumas versões do componente. Espero ter ajudado e, claro, COMENTEM!!

5 comentários:

Anônimo disse...

Bem interessante e com explicações extras, isso é muito bom!

O Pajé disse...

Obrigado pelo retorno!! Fico feliz de ter podido contribuir e espero continuar ajudando sempre!!

FlashGSi disse...

Boa Tarde!

Estou tendo problemas ao deixar este aplicativo TimThumb neste site:

http://www.valeclassificados.net

Possuo um Servidor Virtualizado com Citrix XenServer porém já fiz várias configurações no APACHE HTTP SERVER e infelizmente o aplicativo não carregou.

Há alguma configuração extra no APACHE?

Segundo o WebDesigner, disse que está utilizando a versão mais atualizada do TimThumb.

Se puder informar o que pode ser feito, fico muito agradecido tendo em vista que esta dúvida com certeza sanará problemas de muitos.

Abraço!

Email: flashgsi@yahoo.com.br

O Pajé disse...

Olá FlashGSi,

Não existe, a princípio, nenhuma configuração extra a ser feita no Apache para que o TimThumb rode. Para sanar o problema, eu precisaria olhar com mais detalhes, mas posso recomendar alguns itens a serem verificados:

1- O TimThumb roda em PHP. Verifique se o seu PHP está instalado, usando a versão mais nova, se possível, e se o Apache está com o módulo de PHP ativado. Se houver alguma configuração especial neste módulo, verifique se o seu aplicativo web está contemplado para rodar o PHP corretamente;

2- Verifique o nome do arquivo e a pasta onde ele está. É preciso incluir o caminho correto para chamar o aplicativo. Muito erros decorrem disto, já que alguns programas, como os temas do Wordpress, costumam renomear o arquivo timthumb.php para thumb.php, icon.php ou similares.

3- Tem-se reportado erros no carregamento do sistemas PHP em navegadores rodando em modo privado. O Firefox e o Chrome têm este recurso. Faça o teste, vendo se o problema é este: basta desativar o modo "Navegação Privada" antes de rodar o programa.

4- Verifique se a função do TimThumb está sendo chamada com o nome correto e os parâmetros corretos e válidos.

Bom, eu começaria investigando por aí. Boa sorte!!

FlashGSi disse...

Amigo,

Foi descoberto o erro.

Vim aqui só para lhe agradecer.

O erro era nas permissões do próprio tema, que estava em 777 do FTP, sendo que o correto era deixar 755.

Fica aqui a dica para aqueles que encontrarem futuramente este mesmo erro e problema.

Gostaria de lhe oferecer GRATUITAMENTE, Hospedagem PHP de 500GB de Espaço para que possa colocar o seu site ou fórum no ar, sem custo algum.

Entre em contato pelo site:

http://www.valehostdigital.com.br

Faça o seu cadastro pelo Plano PHP Vale I 500GB que libero para você sem ônus financeiro algum.

O site tem ajudado bastante as pessoas e por isto, gostaria de contribuir também para que permaneça no ar.

Fica aqui a minha gratidão pela ajuda.

Que Deus lhe abençoe!