隐藏/保护php-engine配置文件的最佳做法?

时间:2012-01-05 12:30:06

标签: php security

我有一项任务是在一个旧式开发的网页上工作。

这意味着,常用的变量/常量和数据库连接的变量都在查看php-engine中,而不是在一个单独的文件中。 : - (

我以为我会将它们放入config.php或config.inc文件中,只需使用require_once('/ path / filename');在引擎中。

我的问题是,我对安全性不熟悉,所以我想,我改变了权限(可能是755?)。

我还能做什么吗?

3 个答案:

答案 0 :(得分:4)

将配置文件移到公用文件夹之外,以便无法通过URL访问它。否则,您的网络服务器中的错误配置可能会发送未解析的文件(有人可能忘记告诉网络服务器.inc文件应该通过php运行。我从来没有为它们命名.inc。因为.php)。这种情况很少见,但我在访问的网站上至少发生过两次这样的事情,并且他们的文件中也有凭据。

答案 1 :(得分:3)

需要保留文件权限。但你确实可以通过以下方式使脚本无法访问:

<Files config.php>
    Order Deny
    Deny From All
</Files>

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

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

答案 2 :(得分:2)

如果您将配置文件命名为whatever.php并且它只有常量或变量定义(甚至更多代码)并且您包含它,那么这没有安全问题。 Wordpress使用这种方法