Pourquoi settings.php se trouve-t-il dans le dossier Web?

8

Dans l'installation par défaut, settings.php se trouve à sites/default/. Il n'y a aucune recommandation sur le site Web officiel de Drupal concernant la modification de l'emplacement de ce fichier. Cela ne pose-t-il pas un problème potentiel de sécurité? J'ai vu des serveurs Web Apache finalement échouer à interpréter les fichiers PHP et servir le contenu du fichier PHP au format texte / texte pur, au lieu du contenu HTML supposé. Cela exposerait complètement l'utilisateur et le mot de passe de connexion à la base de données, qui ne sont même pas chiffrés. Pourquoi ça marche comme ça?

César
la source

Réponses:

6

Vous avez tout à fait raison. Je sais pertinemment que de nombreux développeurs / administrateurs système ne prennent pas le risque que l'interpréteur PHP échoue à un moment donné et incluent le mot de passe db (et d'autres données sensibles comme les clés API) à partir d'un fichier en dehors du docroot du serveur Web.

Je suis surpris que cela ne soit documenté comme une meilleure pratique nulle part - au moins je ne l'ai pas trouvé non plus sur drupal.org. Je n'ai aucune information sur la raison pour laquelle cela fonctionne comme il le fait.

marcvangend
la source
6
Je me souviens avoir vu une discussion entre des développeurs principaux / bien connus il y a quelques années où ils se sont opposés au déplacement de données sensibles hors de la racine Web. Je me souviens avoir été assez horrifié à l'époque. Si ma mémoire est bonne, je pense que l'argument était lié au fait que Drupal avait besoin de travailler sur la base de l'hébergement mutualisé, et ces recommandations rendraient cela plus difficile à réaliser pour les masses ou quelque chose comme ça. Je vais voir si je peux trouver cette discussion
Clive
1
Merci @Clive. Je ne voulais pas ajouter de spéculations à ma réponse, mais comme vous le dites, l'exigence de travailler immédiatement sur toutes sortes d'environnements semble la raison la plus probable pour avoir settings.php dans le docroot.
marcvangend
Oui, @marcvangend, c'est ce que je pensais moi-même, mais d'une manière ou d'une autre, une procédure automatique peut être disponible lors de l'installation qui vérifie s'il existe les autorisations appropriées d'écriture / propriétaire au niveau du serveur, et si c'est le cas, pour fournir une sécurité supplémentaire, de manière standardisée et contrôlée (via une méthodologie de base).
Cesar
0

Sur certains fournisseurs, cette chaîne de connexion sensible est stockée en dehors de la racine Web (par exemple, getpantheon.com). Vous pouvez toujours créer des liens symboliques au lieu de les stocker directement dans le dossier / sites / default.

fndtn357
la source