2012-01-05 73 views
3

我刚刚完成了一项工作,在一个旧式开发的网页上工作。隐藏/保护php-engine配置文件的最佳做法?

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

我以为我会把它们放入一个config.php文件或config.inc文件,只是使用require_once(“/路径/文件名”);在发动机

我的问题是,我是不熟悉的固定,所以我想,我更改的权限(也许755?)。

还有什么我能做的么?

回答

3

移动配置文件中的公共文件夹之外,因此它不能通过URL访问,否则,你的网络服务器配置错误可能会发送文件解析(有人可能忘记告诉网络服务器.inc文件应该运行呃php。我从来没有为他们命名.inc。总是.php)。这很少见,但在我访问的网站上至少发生过两次这种情况,他们的文件中也有证书。

+0

你能告诉我在哪里可以配置它?例如,引擎php文件位于/ test文件夹中,我想将此配置文件放入/ test/config目录,文件夹和配置文件需要什么权限,或者有必要将任何内容一个php.ini文件? – tildy 2012-01-05 12:59:46

+1

@tildy在你的apache配置中:https://httpd.apache.org/docs/2.0/mod/mod_mime.html#addhandler – Gordon 2012-01-05 14:59:32

3

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

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

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

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

+1

谢谢,我只想隐藏网络。所以Gordon的答案应该是可用的:我需要将这个文件从公共文件夹移出。 – tildy 2012-01-05 12:46:10

1

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

+0

永远不要以为任何事情都有“没有安全问题”。总有一层可以添加的保护层。 – Cheekysoft 2012-01-05 12:49:49

+0

我知道。但问题不同。 – tildy 2012-01-05 12:52:51