Restringindo permissões de execução de scripts PHP no servidor

Métodos para restringir a execução de scripts PHP no servidor, prevenindo acessos não autorizados e ataques maliciosos.

Introdução

A configuração inadequada de permissões para scripts PHP pode permitir que usuários mal-intencionados executem código não autorizado, acessem arquivos sensíveis ou explorem vulnerabilidades do servidor. Para evitar esse risco, devemos restringir a execução de scripts PHP de maneira segura.

1. Definindo permissões adequadas para arquivos PHP

Certifique-se de que os arquivos PHP tenham permissões corretas, impedindo modificações indevidas:

find /var/www/html -type f -name "*.php" -exec chmod 640 {} \;

Isso define permissões para que apenas o proprietário e o grupo tenham acesso de leitura, impedindo execução por outros usuários do sistema.

2. Restringindo execução de scripts PHP em diretórios específicos

No Apache, podemos impedir a execução de scripts PHP em determinados diretórios, como uploads de usuários:

<Directory "/var/www/uploads">
    php_flag engine off
</Directory>

Isso evita que arquivos maliciosos sejam executados se forem carregados na aplicação.

3. Bloqueando execução de scripts desconhecidos

Podemos evitar a execução de scripts PHP fora de diretórios específicos utilizando open_basedir no php.ini:

open_basedir = /var/www/html

Isso impede que scripts PHP sejam executados em locais não autorizados do sistema.

4. Impedindo execução de comandos no PHP

Evite que scripts PHP executem comandos no servidor desativando funções perigosas no php.ini:

disable_functions = exec, shell_exec, system, passthru, popen, proc_open

Isso bloqueia funções que poderiam ser exploradas por invasores para executar comandos arbitrários.

5. Configurando um usuário seguro para o servidor web

O servidor web não deve rodar com privilégios administrativos. Configure um usuário dedicado para executar o PHP com permissões restritas:

usermod -a -G www-data phpuser
chown -R phpuser:www-data /var/www/html

Isso limita o impacto de um ataque, caso um invasor tente comprometer o sistema.

Conclusão

Restringir permissões de execução de scripts PHP é uma medida essencial para reforçar a segurança da aplicação. Configurar corretamente permissões de arquivos, bloquear execução em diretórios sensíveis, desativar funções perigosas e garantir um usuário seguro para o servidor minimizam riscos de exploração e ataques maliciosos.

O PHP é amplamente utilizado em servidores web, mas sem as configurações de segurança adequadas, pode ser explorado por atacantes para execução de código malicioso. Muitas brechas de segurança acontecem porque permissões inadequadas permitem a execução de scripts não autorizados.

Ao configurar corretamente o ambiente, podemos impedir que arquivos PHP sejam executados em diretórios onde não deveriam estar, como pastas de uploads de usuários. Além disso, desativar funções perigosas e restringir a execução a diretórios específicos reduz significativamente o risco de exploração.

Outra abordagem eficaz é configurar um usuário dedicado para executar o PHP, evitando que um ataque comprometa todo o sistema. Pequenas mudanças nas permissões podem ter um grande impacto na segurança da aplicação e na proteção dos dados armazenados no servidor.

Algumas aplicações:

  • Impedir que invasores executem scripts maliciosos no servidor.
  • Proteger diretórios sensíveis contra execução indevida de código PHP.
  • Reduzir o impacto de ataques explorando vulnerabilidades do servidor.
  • Evitar execução remota de código por usuários não autorizados.

Dicas para quem está começando

  • Defina permissões adequadas para arquivos PHP, evitando acessos indevidos.
  • Utilize .htaccess para bloquear execução de scripts PHP em diretórios não seguros.
  • Desative funções perigosas no php.ini para evitar execução remota de código.
  • Configure um usuário dedicado para rodar o PHP e reduzir privilégios desnecessários.
  • Utilize open_basedir para restringir a execução de scripts a diretórios específicos.

Contribuições de Renata Oliveira

Compartilhe este tutorial: Como restringir permissões de execução de scripts PHP no servidor?

Compartilhe este tutorial

Continue aprendendo:

Como proteger APIs PHP contra abusos e acessos não autorizados?

Métodos para proteger APIs PHP contra abusos, garantindo autenticação segura, controle de requisições e mitigação de ataques maliciosos.

Tutorial anterior

Como configurar restrições de acesso a diretórios sensíveis no PHP?

Métodos para proteger diretórios sensíveis no PHP, impedindo acessos não autorizados e exposição de arquivos críticos.

Próximo tutorial