隐藏/保护PHP引擎配置文件的最佳实践?

4

我刚拿到了一个任务,需要在一个老式开发的网页上工作。

这意味着,常用变量/常量和数据库连接变量都在视图 php 引擎中,而不是在单独的文件中。 :(

我想把它们放入 config.php 或 config.inc 文件中,并在引擎中使用 require_once('/path/filename'); 。

我的问题是,我不熟悉安全保障,所以我想改变权限(也许是755?)。

还有其他事情我可以做吗?

3个回答

4

将配置文件移动到公共文件夹之外,以便无法通过URL访问。否则,Web服务器上的错误配置可能会导致文件无法解析(有人可能忘记告诉Web服务器.inc文件应该通过PHP运行。我因此从不将它们命名为.inc,而是始终使用.php)。这种情况很少见,但我在访问的网站上至少遇到了两次,并且它们的文件中还有凭据。


你能告诉我在哪里可以进行配置吗?例如,引擎的 PHP 文件位于 /test 文件夹中,我想将此配置文件放入 /test/config 目录中,需要对文件夹和配置文件设置什么权限,或者是否需要将任何内容放入 php.ini 文件中? - tildy
1
在您的Apache配置文件中添加以下内容:https://httpd.apache.org/docs/2.0/mod/mod_mime.html#addhandler - Gordon

3
文件权限需要保持,但您可以通过以下方式使脚本本身无法访问:
<Files config.php>
    Order Deny
    Deny From All
</Files>

但这只是一种表面上的预防措施。如果您将该脚本命名为“config.php”,它无论如何都无法通过Web访问。

如果您正在使用共享主机,那么您无法阻止其他帐户进行窥探。这需要具有suphp/suexec的服务器设置,以限制其他用户对文件系统的访问。


1
谢谢,我只想在网上隐藏。所以Gordon的答案应该可用:我需要将这个文件从公共文件夹中移出。 - tildy

2
如果您将配置文件命名为whatever.php,并且它只包含常量或变量定义(甚至更多的代码),并且您使用include_once引入它,则不会有安全问题。WordPress就是采用这种方法。

永远不要认为任何东西都是“没有安全问题的”。总有另一层保护措施可以添加。 - Cheekysoft
我知道。但问题不同。 - tildy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接