¿Por qué está settings.php en la carpeta web?

8

En la instalación predeterminada, settings.php se encuentra en sites/default/. No hay recomendaciones en el sitio web oficial de Drupal sobre cómo cambiar la ubicación de este archivo. ¿No plantea un problema potencial de seguridad? He visto servidores web Apache que finalmente no pueden interpretar archivos PHP y sirven el contenido del archivo PHP en formato puro de texto plano, en lugar del supuesto contenido HTML. Eso expondría por completo el usuario y la contraseña de la conexión de la base de datos, que ni siquiera está cifrada. ¿Por qué funciona de esta manera?

Cesar
fuente

Respuestas:

6

Tienes toda la razón. Sé con certeza que muchos desarrolladores / administradores de sistemas no corren el riesgo de que el intérprete de PHP pueda fallar en algún momento e incluyen la contraseña de db (y otros datos confidenciales, como las claves API) de un archivo fuera del docroot del servidor web.

Me sorprende que esto no esté documentado como una práctica recomendada en ninguna parte, al menos tampoco pude encontrarlo en drupal.org. No tengo información de por qué funciona de la manera que lo hace.

marcvangend
fuente
66
Recuerdo haber visto una discusión entre desarrolladores centrales / conocidos hace algunos años donde argumentaron en contra de mover datos confidenciales fuera de la raíz web. Recuerdo estar bastante horrorizado en ese momento. Si la memoria me sirve, creo que el argumento estaba relacionado con la necesidad de Drupal de trabajar de forma inmediata en el alojamiento compartido, y estas recomendaciones harían que sea más difícil de realizar para las masas o algo así. Veré si puedo encontrar esa discusión
Clive
1
Gracias @Clive. No quería agregar especulaciones a mi respuesta, pero, como usted dice, el requisito de trabajar de forma inmediata en todo tipo de entornos parece ser la razón más probable para tener settings.php dentro de Docroot.
marcvangend
Sí, @marcvangend, esto es lo que yo pensaba, pero de alguna manera puede estar disponible un procedimiento automático durante la instalación que verifica si hay los permisos de escritura / propietario adecuados a nivel del servidor, y si este es el caso, para proporcionar seguridad adicional, de manera estandarizada y controlada (a través de la metodología central).
Cesar
0

En algunos proveedores, esta cadena de conexión sensible se almacena externamente a la raíz web (es decir, getpantheon.com). Siempre puede crear algunos enlaces simbólicos en lugar de almacenarlos directamente en la carpeta / sites / default.

fndtn357
fuente