Desenvolvimento seguro em PHP

Olá pessoal! Tudo bem ?

Então, como prometido. Hoje o assunto é PHP.



Vamos começar explicando como configurar melhor o PHP.ini para tornar sua aplicação mais segura.  
Abaixo algumas funções existentes dentro do arquivo de configuração e sua melhor utilização:

disable_functions=string
Configurando o disable_functions você desabilita algumas funções especificas do php,
como: fopen(),popen() e file().

disable_errors=On|Off
No ambiente de desenvolvimento esta função é facilmente utilizável. Porém é necessário desabilita-la quando for para produção.
doc_root=string
O ideal para esta função é configura-la com o caminho que especifica o diretório raiz a partir do qual os arquivos PHP serão
utilizados.

open_basedir=string
Que tal estabelecer um diretório base em que todas as operações com arquivos estarão restritas?  Configure  o open_basedir da seguinte forma:
open_basedir = “/home/www/”.
Para que impedir manipulação de arquivos por meio de alguns comandos simples do proprio PHP.
expose_php=On|Off
É por meio desta função que o sistema exibe que o PHP está instalado no servidor, mostra a versão do PHP dentro do header HTTP
na assinatura do servidor. Portanto, tente sempre manter esta função desabilitada.

Vamos configurar o Apache?  

ServerSignature
Parecido com o expose_php o ServerSignature é Responsavel por exibir a assinatura do servidor, mostrar a versão do servidor Apache, o nome do servidor,
sua porta de acesso e seus módulos compilados. Novamente, é aconselhável mantê-la desabilitada.

ServerToken
Caso a função ServerSignature estiver habilitada, a função ServerToken irá configurar o nível de detalhe do servidor que será fornecido,
Opções disponíveis: Full, Major, Minimal, Minor, OS e Prod.

phpinfo()
o phpinfo() exibe detalhes de como seu php está configurado. Portanto, esta também é aconselhável manter desabilitada.
  
Mas e os ataques? Como se proteger?
 
Cross-Site Scripting (XSS)
 
string htmlentities( string input [,int quote_style [, string charset ] ])
Esta função converte caracteres que possuem significado especial em HTML para strings um browser pode mostrar como sendo
fornecidos, em vez de executá-las como HTML.

string strip_tags(string str [, string allowed_tags])
Esta função permite que tags html serão permitidas na string.

SQL Injection

Lembre-se de não se conectar ao banco de dados como um super-usuario (root), sempre utilize usuarios personalizados.
Algumas funções disponibilizadas no PHP para evitar ataques de SQL injection:
  •  mysql_real_escape_string(),
  •  sqlite_escape_string(),
  •  addslashes(),
  •  str_replace().




Gostaram? Então fiquem ligados nos próximos posts!

About thallitaceleste

0 comments:

Postar um comentário