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