Como evitar que o PHP acesse diretórios?

Como evitar que o PHP acesse diretórios?

Eu tenho um LAMP básico instalado e gostaria de garantir que o PHP não consiga acessar nada fora do diretório /var/www. Como eu posso fazer isso? Por "acesso", quero dizer também a leitura de arquivos e listagem de diretórios.

Estou pedindo isso por questão de segurança. Estou executando o WordPress no meu servidor e se alguém acessar a conta do administrador, poderá editar o código do modelo através do qual poderá acessar qualquer lugar do sistema.

Obrigado!

Responder1

Aqui estão as principais etapas para proteger uma configuração LAMP:

  • Certifique-se de que todos os sites sejam executados com seu próprio usuário. Você pode conseguir isso com Apache mod_itk/mod_php ou PHP-FPM (geralmente com Apache ou Nginx)
  • Certifique-se de que o root possua os arquivos e o grupo seja o usuário do servidor web (ou vice-versa)
  • Certifique-se de que os direitos de acesso sejam 640 para arquivos e 750 para diretórios. Apenas as pastas de upload do Wordpress são 660/770.
  • Somente quando você atualizar ou instalar plug-ins, altere os direitos de acesso dos arquivos PHP.
  • Certifique-se de que os arquivos PHP não possam ser executados na pasta de imagens:

    <FilesMatch "/uploads/\.(asp|php|php5|pl)$">
        Deny from all
    </FilesMatch>
    

    Esta técnica não funciona muito bem com o Wordpress porque os plugins instalam arquivos php nessa pasta. Talvez seja melhor proteger as pastas uploads/2017 etc.

  • Mantenha a instalação atualizada
  • Mantenha o software do servidor atualizado
  • Execute uma revisão regular do registro
  • Tenha backups
  • Ser capaz de reconstruir rapidamente

informação relacionada