Acesso direto ao conteúdo
Logotipo Dicas-L, por Ricardo Burile

Busca

Visite também: Segurança Linux ·  UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  NoticiasLinux ·  BR-Linux ·  SoftwareLivre.org ·  [mais]   
 

Você está aqui: Home  → Arquivo Dicas-L

 

Assine a Lista Dicas-L

Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.

PHP - Compatibilidade entre versões

Colaboração: Marcelo de Gomensoro Malheiros

Data de Publicação: 10 de Fevereiro de 2003

A versão 4.3.0 do PHP (www.php.net) foi lançada recentemente, incorporando algumas novas funcionalidades e diversas correções de erros.

Como o PHP não mantém uma distinção entre série estável e de desenvolvimento (como acontece com o kernel do Linux), sempre utilizo a versão mais recente. Porém é recomendável ter alguns cuidados quanto à compatibilidade das versões 4.1.x, 4.2.x e a nova 4.3.0 do PHP.

O problema de todas as versões anteriores à 4.2.x é que qualquer variável passada na linha de um script se torna automaticamente global, o que é perigoso do ponto de vista de segurança:

   http://www.example.com/drink.php?beer=all

Isso faz com que a variável $beer seja definida globalmente durante a execução do script. Se por acaso o programador usava esta variável apenas internamente e se esquecia de inicializa-la, temos um problema, pois ao invés de começar vazia já vem com "all".

Por default as versões 4.2.x e 4.3.x vêm com esse mecanismo desligado (a configuração "register_globals" em "off"). Só que muitos scripts mais antigos dependem deste comportamento. Daí que se for necessário tal mecanismo pode ser ligado novamente de forma global, mas o ideal é ligar localmente, dentro da configuração do Apache ou em um arquivo ".htacces", para não ter que fazer isso globalmente:

  <Directory /var/www/default/rau-tu>
    Options  FollowSymLinks
    php_flag engine           on
    php_flag magic_quotes_gpc on
    php_flag register_globals on
  </Directory>

Vale a pena aprender a usar o mecanismo mais seguro, que é dizer explicitamente que uma determinada variável veio da query (http://www.php.net/release_4_1_0.php):

   echo $_GET['beer'];

Outro cuidado a ser tomado é com os "magic_quotes", que por default estão ligados, mas existem aplicações que precisam deles desligados. Esse recurso insere '\' automaticamente em variáveis externas.

Para se garantir, veja qual a configuração mais adequada e também force-a para o seu programa na configuração do Apache, como indicado no exemplo mais acima.

Uma última sugestão: torne o PHP disponível somente em certos diretórios, usando a configuração "engine on", e deixando "engine off" para os demais.

Veja a relação completa dos artigos de Marcelo de Gomensoro Malheiros

Formato PDF
Newsfeed RSS
Formato para impressão
PDF RSS Imprimir

Referências Adicionais

Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.

Avalie esta dica

  • Currently 2.98/5
  • 1
  • 2
  • 3
  • 4
  • 5

Avaliação: 3.0 /5 (1163 votos)

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script

Treinamentos, Consultorias e Soluçoes em TI. Baseados em softwares livres e padrões abertos para ambientes de missão crítica

Submarino.com.br

SEM e SEO - 2ª Edição