Por que o settings.php está na pasta da web?

8

Na instalação padrão, o settings.php está localizado em sites/default/. Não há recomendações no site oficial do Drupal sobre a alteração da localização deste arquivo. Isso não representa um problema potencial de segurança? Eu vi servidores da Web Apache eventualmente falhando na interpretação dos arquivos PHP e exibindo o conteúdo do arquivo PHP em puro formato puro / texto, em vez do suposto conteúdo HTML. Isso exporia completamente o usuário e a senha da conexão com o banco de dados, que nem sequer são criptografados. Por que funciona dessa maneira?

Cesar
fonte

Respostas:

6

Você está absolutamente correto. Sei que muitos desenvolvedores / administradores de sistemas não correm o risco de o interpretador PHP falhar em algum momento e incluem a senha db (e outros dados confidenciais, como chaves de API) de um arquivo fora da documentação do servidor da web.

Estou surpreso que isso não esteja documentado como uma prática recomendada em nenhum lugar - pelo menos também não consegui encontrá-lo no drupal.org. Não tenho informações sobre por que funciona da maneira que funciona.

Marcvangend
fonte
6
Lembro-me de ver uma discussão entre desenvolvedores principais / conhecidos alguns anos atrás, onde eles argumentaram contra a remoção de dados confidenciais da raiz da web. Lembro-me de estar bastante horrorizado na época. Se a memória me servir bem, acho que o argumento estava relacionado ao Drupal precisar trabalhar imediatamente em hospedagem compartilhada, e essas recomendações dificultariam a realização das massas ou algo do tipo. Vou ver se consigo encontrar essa discussão.
Clive
11
Obrigado @Clive. Eu não queria adicionar especulações à minha resposta, mas, como você diz, o requisito de trabalhar imediatamente em todos os tipos de ambientes parece o motivo mais provável para ter o settings.php dentro do docroot.
marcvangend
Sim, @marcvangend, é o que eu pensava, mas de alguma forma um procedimento automático pode estar disponível durante a instalação, que verifica se existem permissões de gravação / proprietário apropriadas no nível do servidor e, se for o caso, para fornecer segurança adicional, de maneira padronizada e controlada (via metodologia principal).
Cesar
0

Em alguns provedores, essa cadeia de conexão sensível é armazenada externamente à raiz da web (por exemplo, getpantheon.com). Você sempre pode criar alguns links simbólicos em vez de armazenar diretamente na pasta / sites / default.

fndtn357
fonte