0

我正在为我的一个项目开发安装程序,安装程序将创建一个配置文件。

我让它正常工作 99.99%,但在那个文件中我想要检查以确保黑客无法直接访问它,并且该代码使用 $_SERVER 超级全局,在每次运行时,它都会被 php 解析,因此它会破坏我正在尝试的逻辑。

有谁知道我可以让超全球在没有解析的情况下保持原样,还是我应该重新考虑我的逻辑并将其添加到其他地方?

对于那些可能想查看代码的人,这里是:

#Disable direct access.
if(!strcasecmp(basename($_SERVER['SCRIPT_NAME']),basename(__FILE__)) || !defined('accessed')){
    die('<string>No Direct access is allowed for this file.</string>');
}
4

2 回答 2

2

假设您使用的是 Apache(或任何与 .htaccess 兼容的服务器),您只需.htaccess在保存配置文件的文件夹中创建一个文件,其中包含以下内容:

<Files config.php>
  deny from all
</Files>

它将阻止通过 HTTP 请求访问此文件。

有关详细信息,请参阅使用 .htaccess 文件

于 2011-07-18T16:50:40.407 回答
1

不要使用 in-script 或 .htaccess 保护 - 只需将文件写入文档根目录之外的某个位置。如果您不希望某些东西可用,请不要使其可用。

把它放在文档根目录就像你的银行把一袋袋钱挂在前窗上,上面写着“不要偷”。

于 2011-07-18T16:53:20.710 回答