我在一堆php项目中克服了这种安全措施。在每个php文件的顶部,检查是否通过直接访问(例如通过浏览器)调用脚本,或者是否正确包含/需要站点入口点:
if(!defined('SYSTEM_ENTRYPOINT'))
die();
这是在php项目中使用的好习惯吗?这样做时我应该考虑什么?有边缘情况吗?不检查时可能会暴露哪些数据?
答案 0 :(得分:3)
您应该使用URL重写来处理它。以某种方式组织您的php文件,以便访问者无法触及您的程序逻辑。
例如,将代码分为两个目录:web和src。 Web只能contian contian index.php ant htaccess文件来路由所有请求。 Src应该是所有程序逻辑(控制器,db访问等等)。在src / index.php中,编写一些逻辑来决定从src文件夹中包含哪个控制器。
将“web”目录设为您网站的网站根目录,访问者将无法访问任何其他php文件。