ThinkPHP 框架审计起来有什么不同
1. 核心差异:文件结构与路由机制
- 传统 PHP 代码:
- 文件结构: 通常比较随意,一个页面一个文件,或者通过
include
/require
组织 - 入口点: 可能会有多个入口文件,例如
index.php
、login.php
、upload.php
等 - 审计思路: 从每个入口文件开始,逐个跟踪用户输入,找到所有可能被利用的敏感函数,例如
eval
、system
、include
- 文件结构: 通常比较随意,一个页面一个文件,或者通过
- ThinkPHP 框架:
- 文件结构: 严格遵循 MVC(模型-视图-控制器)架构,有固定的目录结构,如
app
、config
、public
、route
等 - 入口点: 通常只有一个统一的入口文件,
public/index.php
。所有请求都通过这个文件,然后由框架的路由系统进行分发 - 审计思路: 重点分析路由文件(
route
目录),理解请求如何被分发到哪个控制器的哪个方法。审计不再是线性的文件流,而是基于路由-控制器-模型-视图的调用链
- 文件结构: 严格遵循 MVC(模型-视图-控制器)架构,有固定的目录结构,如