Desenvolvimento - PHP

PHP: Segurança com includes

Vou falar sobre "vulnerabilidade" ou melhor um descuido do programador ao desenvolver um sistema de includes.

por Rodrigo Sebold



Salve galera do PHP!!!

Vou falar sobre "vulnerabilidade" ou melhor um descuido do programador ao desenvolver um sistema de includes. Digamos que seja desenvolvido o seguinte script PHP em que o usuário irá acessar o site e suas categorias pelo seguinte endereço:

Citação:

Onde o arquivo index.php seria:

Citação:

Tudo certo??? Não! Tudo errado. Digamos que algum usuário mal intencionado acesse o site pela seguinte url:

Citação:

E agora o arquivo pegar_dados.php vai conter:

Citação:

Ou quem sabe o usuário poderia vir a "tomar posse" do sistema usando o comandos do sistema operacional. Com a função passthru("comando") abaixo vou mostrar um arquivo que mostraria todos os dados da unidade C:, mas lembrando que poderia ser executado qualquer outro comando...

Citação:

E lembrando que o usuario poderá acessar qualquer arquivo do sistema por exemplo:

Citação:

A solução para esses casos seria simplesmente a validação de dados que o usuário vai enviar. O arquivo index.php "seguro" ficaria desta maneira:

Citação:

Pessoalmente não acho conveniente sistemas de include desenvolvidos deste modo, porque quanto mas você poder esconder como é o sistema melhor, ficaria bom se os includes fossem dados por id exemplo http://www.site.com.br/index.php?arquivo=1 e ficaria melhor ainda se possível você mudar a extensão do php para .html por exemplo...

E se caso algum dia você precisar desenvolver algum script que irá utilizar a função passthru(), dererá ser feito a validação dos dados com a funcão escapeshellarg() ou escapeshellcmd().

Sendo assim vou finalizando aqui. Qualquer dúvida é so postar ai vamos fazer o possível para responder ela... Até mais!!! ;D

Vistem: http://www.rootsec.hcerto.com/forum/

Rodrigo Sebold

Rodrigo Sebold