为什么settings.php位于Web文件夹中?


8

在默认安装中,settings.php位于sites/default/。在Drupal官方网站上没有关于更改此文件位置的建议。这不是潜在的安全问题吗?我已经看到Apache网络服务器最终无法解释PHP文件,并以纯纯文本格式提供PHP文件的内容,而不是假定的HTML内容。这将完全公开数据库连接用户和密码,而这些用户和密码甚至没有被加密。为什么这样工作?

Answers:


6

你是绝对正确的。我知道,许多开发人员/系统管理员不会冒着PHP解释器可能在某个时候失败的风险,而不会从Web服务器docroot外部的文件中包含db密码(以及其他敏感数据,如API密钥)。

令我惊讶的是,这在任何地方都没有被记录为最佳实践-至少在drupal.org上也找不到。我不知道为什么它会如此运作。


6
我记得几年前在核心/知名开发人员之间进行的一次讨论,当时他们反对将敏感数据移出网络根目录。我记得当时当时非常恐惧。如果记忆正确,我认为这种争论与Drupal需要在共享主机上开箱即用有关,这些建议将使大众或类似人士更难实现。我看看是否可以找到该讨论
Clive

1
谢谢@Clive。我不想在猜测中添加任何猜测,但是就像您说的那样,要求在各种环境下即开即用的要求似乎是最有可能在docroot中包含settings.php的原因。
marcvangend

是的,@ marcvangend,这就是我的想法,但是在安装过程中可能会出现一个自动过程,该过程会检查服务器级别是否具有适当的写/所有者权限,如果是这样,则可以提供额外的安全性,以标准化和受控的方式(通过核心方法)。
塞萨尔(Cesar)

0

在某些提供程序上,此敏感连接字符串存储在Web根目录外部(即,getpantheon.com)。您始终可以创建一些符号链接,而不是直接存储在/ sites / default文件夹中。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.