De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
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.
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários