这是一种停止直接文件访问的安全方法吗?

时间:2016-03-28 19:20:44

标签: php include

<?php if(basename($_SERVER["SCRIPT_FILENAME"]) == basename(__FILE__)) { header ("HTTP/1.1 404 Not Found");   exit; } ?>

我把它放到我的所有PHP文件中,它是一种安全的方法还是可以被绕过?

1 个答案:

答案 0 :(得分:0)

您应该将核心文件放在网站的根目录之外。

例如,如果您的公共文件位于:/var/www/site0/public_html,则将所有核心文件放在/var/www/site0/目录下。

另一种方法是使用常量。很可能你有一个bootstrap脚本,其中包含你的所有文件(这就是你需要直接访问保护的原因)。

在引导脚本的顶部定义一个常量:define('BOOTSTRAPPED', 1)

然后将此行放在您希望阻止直接访问的脚本顶部:if (!defined('BOOTSTRAPPED')) exit;