Manual do PHP
Anterior | Capítulo 16. Segurança | Próxima

# Dados Submetidos pelo Usuário

A maior fraqueza dos muitos programas em PHP não está inerentemente em sua própria linguagem, mas puramente pelo fato do código não está sendo escrito com segurança em mente. Por está razão, você sempre levaria tempo para considerar as implicações de uma dada parte do código, para averiguar o possível dano se uma variável inesperada é submetida nele.

Exemplo 16-17. Uso de Variável Perigosa
`<?php // remove um arquivo de diretório home do usuário... ou talvez // alguém? unlink ($evil_var); // Escreve o log de seus acessos... ou talvez uma entrada /etc/passwd? fputs ($fp, $evil_var); // Executa algo trivial.. ou rm -rf *? system ($evil_var); exec ($evil_var); ?>`

Você sempre examinaria cuidadosamente seu código para certificar-se que quaisquer variáveis sendo submetidas de um navegador estão sendo verificadas adequadamente, e faça a você mesmo os seguintes questionamentos:

- Este script afetarár apenas os arquivos intensionados?

- Dados incomuns ou indesejáveis podem agir?

- Este script pode ser usado de maneiras sem propósito?

- Este script pode ser usado com outros scripts de maneira indevida?

- Quaisquer transações serão adequadamente registradas?

Respondendo adequadamente estas perguntas enquanto escreve seu script, melhor do que depois, você evita uma re-escrita desagradável quando você precisar aumentar sua segurança. you prevent an unfortunate re-write when you need to increase your security. Começando com esta atitude, você não garantirá a segurança de seu sistema, mas você pode ajudar a aumentá-la.

Você pode também querer desligar register_globals, magic_quotes, ou outras configurações convenientes que podem te confundir com a validação, arquivos fontes, ou o valor de certas variáveis. Trabalhando com o PHP no modo error_reporting(E_ALL) pode também ajudar a prevenir você, sobre variáveis sendo usadas antes de serem verificadas ou inicializadas (então você pode se prevenir de dados sendo lançados)

Anterior | Principal | Próxima
Usando Register Globals | Acima | Escondendo o PHP