Links Relacionados

Pesquisa

domingo, 1 de abril de 2007

As 20 dicas sobre segurança da Zend sobre programação em PHP

Este post é um resumo das 20 dicas que a Zend publicou no DevZone sobre segurança em desenvolvimento php.


Dica 1 - Tenha sempre a última versão do PHP instalada.

Dica 2 - Por padrão o php deixa ativado a exibição de erros na execução dos scripts. Por medida de segurança é bom desativá-los para que nenhuma informação vaze à alguma pessoa.

Dica 3 - Se você puder tenha instalado o PHPSecInfo que checa suas configurações em busca de problemas de segurança. Existe também uma boa ferramente o Chorizo aonde você escaneia seus hosts em busca de vulnerabilidades.

Dica 4 - Não dê nomes comuns a pastas e arquivos com informações nocivas. Cuide as permissões e olhe os logs de acesso para saber se não esta havendo algum ataque. Pelo menos dificulta um possível ataque.

Dica 5 - Nunca confie no usuário . NUNCA ... N U N C A! Filtre as entradas de dados e escape as saídas.

Dica 6 - Quando trabalhar com números em querys SQL use filter_var() e casts como nesses exemplos:

$myId = filter_var($_GET['id'],FILTER_VALIDATE_INT);
$sql = 'SELECT * FROM table WHERE id = '.$myId;

E...

$myId = filter_var($_GET['id'],FILTER_VALIDATE_INT );
$sql = 'SELECT * FROM table WHERE id = '.(int)$myId;


Dica 7 - Sempre que puder use o session_regenerate_id()

Dica 8 - Parecida com a Dica 5 - Filtre e Valide dados do usuário.

Dica 9 - Separe os arquivos mais sencíveis como o gerenciador do banco de dados, mantendo eles fora da pasta do web server, fazendo eles inacessíveis a usuários que vêm pelo servidor web.
Exemplo:

/phpinc
/includes
/htdocs
/images
/js


Dica 10 - Quando usar a função mail(), filtre e valide para evitar uma injeção de códigos nos headers.

Dica 11 - Mantenha um nivel de usuários muito bem projetado, não permitindo que ninguém veja nada mais do que lhe é permitido. Em muitos frameworks isso é feito já, considere estudar um.

Dica 12 - Pense com cuidado antes de usar a função eval(), mesmo filtrando e validando os dados, vai que descobrem algum jeito de burlar e fazer um spoofing no servidor.

Dica 13 - Mesmo que a dica 3.

Dica 14 - Cuidado com o que você grava dentro de um cookie. Retrinja ao máximo. Pessoas podem conseguir ver esses dados.

Dica 15 - Sabe aquele arquivo temporário que você criou para testar alguma funcionalidade ? Então lembre-se de tirá-lo depois.

Dica 16 - Escolha um framework que está sempre sendo atualizado e tenha a certeza de atualizar ele quando sair a nova versão.

Dica 17 - Na dica 17 eles dão um bom pdf para ser lido http://shiflett.org/php-security.pdf sobre segurança em projetos. Considere ler ele.

Dica 18 - Quando você permitir o upload de arquivos para o servidor, faça com filtros e validações, não permita o upload de arquivos .php, .htaccess entre outros. Uma informação muito boa dada nessa dica é a Fileinfo.

Dica 19 - A dica 19 fala mais especificamente da segurança do seu sistema operacional. É bom dar uma lida.

Dica 20 - Essa dica é ótima e todos deveriam seguir (se todos nós pudessemos comprar livros como esses, que sao caros!). A dica se resumi em ler livros sobre segurança aonde você encontra varias dicas a mais.