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.

2 comentários:

Anônimo disse...

Parabéns pelas Informações, criação e desenvolvimento do Site!!!!

mcunha98 disse...

O artigo eh bem interessante, seria interessante detalhar ou exemplificar mais o item 11

Alem disso, a dica 18 merece uma melhoria geral, eu tive meu site infectado por arquivos php disfarcados de zip que de alguma maneira foram executados pelo servidor. Entao so se preocupar com php e httaccess eh o basico, mas princpalmente pl,htm,html e outras coisas...