- edu99
Membro - Idade : 25
Posts : 35
Créditos : 0
Respeito : 0
Habboz !
15 dicas para deixar seu site PHP mais seguro
Dom 23 Ago 2009, 11:46
1. Evite colocar seu arquivo de conexão com banco de dados no mesmo
diretório das suas páginas ou no diretório usado para includes. O
melhor a fazer é colocá-lo em algum diretório fora da raiz do site.
2.
Desligue no servidor web a configuração que permite a listagem dos
arquivos presentes nos diretórios que não tem um index.php.
3. Evite usar o nome includes para o diretório onde você colocará esse tipo de arquivo.
4.
No diretório que você usar para colocar seus arquivos de include,
sempre coloque um arquivo index.htm e um index.php em branco. Isso
evitará que o servidor liste o conteúdo desse diretório caso esteja com
a configuração para listagens habilitada.
5. Jamais use a
extensão .inc para seus arquivos de include. Isso pode fazer com que o
servidor web mostre dados importantes contidos nesses arquivos. Use
sempre a extensão .php. Dessa forma o arquivo sempre será processado
antes de ser entregue para os usuários.
6. Desligue o
error_reporting no servidor de produção. Erros em scripts PHP
normalmente exibem a localização física dos arquivos no servidor ou
mostram as consultas inteiras que estão sendo usadas para acessar o
banco de dados, por exemplo. Com o error_reporting desligado, essas
informações não serão mostradas.
7. Ao criar uma área de administração do site, evite usar nomes óbvios como admin.
8.
Ainda na mesma área administrativa, faça configurações que obriguem os
usuários a mudar de senha freqüentemente e que não aceite senhas muito
simples. Evite também a criação de usuários padrão como: admin,
administrador, admintrator, root.
9. Em formulários que enviam
dados diretamente para o banco, tomar cuidado com SQL Injection. Para
resolver isso, capture esses dados e trate-os com addslashes.
10.
Em sistemas dinâmicos, evitar fazer scripts que apagam dados do banco.
Costume usar status para os registros e depois construa um script
coletor que irá tratar esses dados que deveriam ser apagados.
11.
Não esqueça que é possível configurar o nível de permissão do usuário
que será usado para acessar o banco de dados. Se seu site apenas faz
consultas. Coloque no seu arquivo de conexão um usuário que só possa
fazer SELECT no banco.
12. No php.ini, que é o arquivo de
configuração do PHP, use o parâmetro disable_functions para desabilitar
funções que podem ser perigosas como: exec(), eval(), readfile(),
shell_exec(), system(), file(), fopen(), popen() entre outras.
13. Ainda no php.ini, habilite o safe_mode.
14. Sempre desabilitar o usuário root padrão do MySQL, que tem senha em branco.
15.
Se for usar algum aplicativo para blog, chat, wiki, etc. Não esqueça de
remover o arquivo de instalação do diretório do aplicativo.
100% dos Creditos: IDG NOW
diretório das suas páginas ou no diretório usado para includes. O
melhor a fazer é colocá-lo em algum diretório fora da raiz do site.
2.
Desligue no servidor web a configuração que permite a listagem dos
arquivos presentes nos diretórios que não tem um index.php.
3. Evite usar o nome includes para o diretório onde você colocará esse tipo de arquivo.
4.
No diretório que você usar para colocar seus arquivos de include,
sempre coloque um arquivo index.htm e um index.php em branco. Isso
evitará que o servidor liste o conteúdo desse diretório caso esteja com
a configuração para listagens habilitada.
5. Jamais use a
extensão .inc para seus arquivos de include. Isso pode fazer com que o
servidor web mostre dados importantes contidos nesses arquivos. Use
sempre a extensão .php. Dessa forma o arquivo sempre será processado
antes de ser entregue para os usuários.
6. Desligue o
error_reporting no servidor de produção. Erros em scripts PHP
normalmente exibem a localização física dos arquivos no servidor ou
mostram as consultas inteiras que estão sendo usadas para acessar o
banco de dados, por exemplo. Com o error_reporting desligado, essas
informações não serão mostradas.
7. Ao criar uma área de administração do site, evite usar nomes óbvios como admin.
8.
Ainda na mesma área administrativa, faça configurações que obriguem os
usuários a mudar de senha freqüentemente e que não aceite senhas muito
simples. Evite também a criação de usuários padrão como: admin,
administrador, admintrator, root.
9. Em formulários que enviam
dados diretamente para o banco, tomar cuidado com SQL Injection. Para
resolver isso, capture esses dados e trate-os com addslashes.
10.
Em sistemas dinâmicos, evitar fazer scripts que apagam dados do banco.
Costume usar status para os registros e depois construa um script
coletor que irá tratar esses dados que deveriam ser apagados.
11.
Não esqueça que é possível configurar o nível de permissão do usuário
que será usado para acessar o banco de dados. Se seu site apenas faz
consultas. Coloque no seu arquivo de conexão um usuário que só possa
fazer SELECT no banco.
12. No php.ini, que é o arquivo de
configuração do PHP, use o parâmetro disable_functions para desabilitar
funções que podem ser perigosas como: exec(), eval(), readfile(),
shell_exec(), system(), file(), fopen(), popen() entre outras.
13. Ainda no php.ini, habilite o safe_mode.
14. Sempre desabilitar o usuário root padrão do MySQL, que tem senha em branco.
15.
Se for usar algum aplicativo para blog, chat, wiki, etc. Não esqueça de
remover o arquivo de instalação do diretório do aplicativo.
100% dos Creditos: IDG NOW
Permissões neste sub-fórum
Não podes responder a tópicos