Segurança de arquivos de aplicativos da web e senhas de banco de dados em um ambiente de hospedagem compartilhada Linux

Segurança de arquivos de aplicativos da web e senhas de banco de dados em um ambiente de hospedagem compartilhada Linux

Eu tenho um aplicativo da web em uma máquina de hospedagem compartilhada Linux. Digamos que eu tenha um .htpasswdarquivo, algumas configurações que armazenam uma senha de banco de dados e geralmente não querem que as pessoas bisbilhotem meu código-fonte em busca de vulnerabilidades.

O servidor web (apache) precisa de acesso de leitura (e gravação em alguns casos) aos arquivos acima. No entanto, não quero que outras pessoas no mesmo host compartilhado tenham acesso.

Nunca entendi muito bem como isso deveria funcionar. A questãoaquié semelhante, mas parece apontar mais para impedir que o aplicativo da web hospede acidentalmente um arquivo de senhas.

AFAIK, tudo que tenho para trabalhar são permissões básicas do Linux. Em um servidor, espera-se que eu conceda permissões a "outros" para o Apache. Em seguida, remover as permissões do grupo em que todos os outros usuários estão, nega-lhes o acesso. Isso parece bastante indireto. Em outro servidor, há um nobodygrupo ativado public_htmlapenas com permissões de grupo definidas.

Uma preocupação é que se o usuário do Apache tiver acesso aos meus arquivos, um script simples poderá ser escrito e executado para obter acesso de outro usuário:

<?php
header("Content-Type: text/plain");
include $_GET['f'];
?>

TLDR: Preciso que o Apache tenha acesso aos arquivos de origem e senhas, mas não a outros usuários na mesma máquina (exceto administradores ofc).

Qual é uma configuração comum?

Perguntas relacionadas:

Responder1

Crie um grupo, adicione apache/www-data ao grupo. Então:

chown -R apache:nome do grupo /var/www/mywebapp/ && \ chmod -R 640 /var/www/mywebapp

Isso concederá ao proprietário permissões de leitura e gravação (6) e de leitura do grupo (4) para a pasta e todos os subdiretórios e arquivos. O usuário do apache poderá acessar os arquivos, assim como o proprietário, mas outros não. Você deve garantir que eles não possam enviar para o usuário do Apache.

Use blocos de diretório na configuração do vhost para restringir o acesso no nível da pasta. http://httpd.apache.org/docs/2.0/misc/security_tips.html#Veja Proteger arquivos do servidor http://www.anchor.com.au/hosting/dedicated/Security_Hardening_of_an_Apache_Virtual_Host

informação relacionada