<?php if(basename($_SERVER["SCRIPT_FILENAME"]) == basename(__FILE__)) { header ("HTTP/1.1 404 Not Found"); exit; } ?>
我把它放到我的所有PHP文件中,它是一种安全的方法还是可以被绕过?
答案 0 :(得分:0)
您应该将核心文件放在网站的根目录之外。
例如,如果您的公共文件位于:/var/www/site0/public_html
,则将所有核心文件放在/var/www/site0/
目录下。
另一种方法是使用常量。很可能你有一个bootstrap脚本,其中包含你的所有文件(这就是你需要直接访问保护的原因)。
在引导脚本的顶部定义一个常量:define('BOOTSTRAPPED', 1)
,
然后将此行放在您希望阻止直接访问的脚本顶部:if (!defined('BOOTSTRAPPED')) exit;