我正在为我的项目安装一个安装程序,安装程序将创建一个配置文件。
我有99.99%的工作正常,但在该文件中我想要检查以确保黑客无法直接访问它,并且该代码使用$ _SERVER超级全局,在每次运行中都会被php解析它打破了我想要的逻辑。
有没有人知道我可以让superglobal保持原样,因为它没有解析,或者我应该重新考虑我的逻辑并将其添加到其他地方?
对于那些可能想要查看代码的人,这里是:
#Disable direct access.
if(!strcasecmp(basename($_SERVER['SCRIPT_NAME']),basename(__FILE__)) || !defined('accessed')){
die('<string>No Direct access is allowed for this file.</string>');
}
答案 0 :(得分:2)
假设您使用的是Apache(或任何.htaccess兼容服务器),您只需在包含配置文件的文件夹中创建一个.htaccess
文件,其中包含以下内容:
<Files config.php>
deny from all
</Files>
它将阻止通过HTTP请求访问此文件。
有关详细信息,请参阅using .htaccess files。
答案 1 :(得分:1)
不要使用脚本内或.htaccess保护 - 只需将文件写在文档根目录之外的某处。如果您不希望某些内容可用,请不要使其可用。
将它放在文档根目录中,就好像你的银行在前窗上挂着一袋钱,上面写着“不要偷”。