Tornando o PHP mais seguro

Tornando o PHP mais seguro

Bem, o PHP é uma das aplicações mais populares rodando em servidores Linux e Windows atualmente. Também é uma das principais fontes para as contas de usuário e servidores serem comprometidos. Vou passar uma visão geral de como travar o PHP, torná-lo mais seguro e também como tornar seu php.ini mais seguro.

 

Primeiramente, vamos mostrar como você pode editar o php.ini. Este arquivo é onde se encontram as configurações do PHP do seu servidor. Você pode encontrá-lo, acessando via shell e digitando:

# php -i | grep php.ini

Habilitando o safe mode

O Safe Mode (ou modo seguro) é uma maneira simples de aumentar a segurança e otimizar as funções permitidas para serem usadas. O PHP.net se refere ao Safe mode como “O Safe Mode do PHP é uma tentativa de solucionar problemas de segurança em servidores compartilhados. É arquiteturalmente incorreto tentar solucionar estes problemas à nível do PHP, mas como as alternativas de servidores Web e sistemas operacionais não são muito realistas, muitas pessoas, especialmente provedores de serviços de internet, preferem usar o safe mode”.

Eu recomendo muito que seja habilitado o safe mode em servidores onde sejam produzidos sistemas, especialmente em ambientes compartilhados. Isto irá acabar com funções como php exec, previnindo brechas de segurança.

 

Desabilitar Funções Perigosas do PHP

O PHP tem um imenso potencial para acabar com o seu servidor, principalmente com tentativas de roubo de dados importantes. Já vimos muitas vezes casos de usuários utilizarem um código PHP inseguro que serve como uma porta aberta para desencadear uma série de comandos perigosos.

Procure no php.ini por:
disable_functions =

Adicione o seguinte:

disable_functions = dl,system,exec,passthru,shell_exec

Desligue o register_globals

O register_globals vai injetar em seus scripts todo tipo de variáveis, como por exemplo variáveis solicitadas em um formulário em HTML.  Unindo isto ao fato do PHP não requerer inicialização de variáveis, significa que escrever código inseguro é muito fácil.

register_globals = On

Substitua por:

register_globals = Off

Rode o PHP com PHPSuExec, previnindo acesso como nobody

O maior problema com o PHP, é que os servidores cPanel rodam como “nobody” (ninguém). Quando alguém ajusta as permissões de um script PHP para 777, isso quer dizer que ele pode ser lido, escrito e executado pro qualquer um, ou seja, o arquivo pertence a ninguém. Então, se alguém no mesmo servidor compartilhado criar um script para procurar por arquivos com permissão 777, esta pessoa pode injetar o que quiser neste arquivo, comprometendo a conta deste usuário que sofre o “ataque”.

O PHPSuExec faz com que o PHP rode de forma que as permissões 777 não sejam permitidas. Existem alguns pontos contra o PHPSuExec, mas seu uso é aconselhável em servidores compartilhados, para a segurança de todos. O Safe Mode do PHP não previne que um usuário comprometa os arquivos de outro usuário. É aí que entra o PHPSuExec, impedindo um usuário de má fé de poder ler e escrever nos arquivos de outros usuários. Também facilita aos administradores de servidor a identificar scripts com intenção de envio de email em massa e outros problemas, pois você terá controle da responsabilidade de cada arquivo do servidor.

Para isto, você precisará recompilar o PHP com o SuExec. O EasyApache to cPanel pode fazer isso facilmente para você, bastando executá-lo em /scripts/easyapache.

E por fim, você pode ativar a proteção open_base para previnir que um usuário possa ler arquivos de outro usuário.

Leave a Reply

Your email address will not be published.

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

Abrir chat
💬 Posso Ajudar?