Manual do PHP
Anterior |  | Próxima

# Capítulo 30. Dados Enviados pelo UsuÃ¡rio

A maior fraqueza na maioria dos programas PHP nÃ£o Ã© inerente a linguagem em si, mas meramente um problema de cÃ³digo escrito desconsiderando seguranÃ§a. Por essa razÃ£o, vocÃª sempre deve investir um pouco de tempo considerando as implicaÃ§Ãµes de um certo pedaÃ§o de cÃ³digo, para ter certeza que o dano possÃvel se uma variÃ¡vel nÃ£o esperada for submetida ao mesmo.

Exemplo 30-1. Uso Perigoso de VariÃ¡veis

`<?php // remove um arquivo do diretÃ³rio home do usuÃ¡rio... ou talvez // de outra pessoa? unlink ($evil_var); // Escreve registro do acesso... ou talvez uma entrada em /etc/passwd? fwrite ($fp, $evil_var); // Executa algo trivial... ou rm -rf *? system ($evil_var); exec ($evil_var); ?>`

VocÃª sempre deve examinar cuidadosamente seu cÃ³digo para se assegurar que quaisquer variÃ¡veis sendo enviadas do navegador web estÃ£o sendo checadas de maneira correta, e faz a si mesmo as seguintes perguntas:

- Seu script sÃ³ afetarÃ¡ os arquivos desejados?

- Dados incomuns ou indesejados podem ser utilizados?

- Esse script pode ser usado de maneiras nÃ£o intencionadas?

- Ele pode ser usado in conjunto com outros scripts de maneira negativa?

- As transaÃ§Ãµes serÃ£o registradas adequadamente?

Respondendo essas perguntas adequadamente enquanto escrevendo o script, ao invÃ©s de depois, previne a re-escrita indesejada quando vocÃª precisar aumentar a seguranÃ§a. ComeÃ§ando com essa linha de raciocÃnio, vocÃª nÃ£o garante a seguranÃ§a do seu sistema, mas pode ajudar a aumentÃ¡-la.

VocÃª tambÃ©m pode considerar desligar as diretivas register_globals, magic_quotes, ou outras configuraÃ§Ãµes convenientes que pode confundir vocÃª em relaÃ§Ã£o a validade, origem, ou valor de uma variÃ¡vel qualquer. Trabalhar com PHP em modo error_reporting(E_ALL) tambÃ©m pode ajudar avisando sobre variÃ¡veis sendo usadas antes de serem checadas ou inicializadas (entÃ£o vocÃª pode previnir que dados incomuns sejam operados).

Anterior | Principal | Próxima
Usando a diretiva Register Globals | Acima | Magic Quotes