20-4

ThinkPHP 框架审计起来有什么不同

1. 核心差异:文件结构与路由机制

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