【问题标题】:Best practice to hide/secure the php-engine config file?隐藏/保护 php-engine 配置文件的最佳实践?
【发布时间】:2012-01-05 12:30:05
【问题描述】:

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

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

我想我会把它们放到一个 config.php 或 config.inc 文件中,然后只使用 require_once('/path/filename');在引擎中。

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

还有什么我可以做的吗?

【问题讨论】:

    标签: php security


    【解决方案1】:

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

    【讨论】:

    • 你能告诉我在哪里可以配置它吗?例如,引擎的php文件在/test文件夹中,我想把这个配置文件放到/test/config目录下,文件夹和配置文件需要什么权限,或者是否需要放入任何东西一个 php.ini 文件?
    • @tildy 在你的 apache 配置中:httpd.apache.org/docs/2.0/mod/mod_mime.html#addhandler
    【解决方案2】:

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

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

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

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

    【讨论】:

    • 谢谢,我只是想从网络上隐藏。所以戈登的回答应该是可以用的:我需要把这个文件从公用文件夹移到外面。
    【解决方案3】:

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

    【讨论】:

    • 永远不要认为任何事情都有“没有安全问题”。总是可以添加另一层保护。
    • 我知道。但问题不同。
    猜你喜欢
    • 2012-09-28
    • 1970-01-01
    • 2021-09-26
    • 2017-11-16
    • 2013-02-21
    • 1970-01-01
    • 2012-03-09
    • 2017-09-06
    • 1970-01-01
    相关资源
    最近更新 更多