SuperAPI AI 工具集

php-thinkphp-audit

安全与审计

查看项目

更新于 10-15 08:50

技能介绍

用途

php-thinkphp-audit 用于对 ThinkPHP 框架项目进行白盒静态安全审计,分析源码中的“框架特性安全机制”和典型踩坑模式,并将发现映射到统一的通用漏洞类型体系。

主要能力

覆盖以下审计方向:

  1. 鉴权与权限控制(AUTH):定位鉴权入口(控制器中间件/过滤器、基类 Controller/Behavior、路由层权限中间件),检查 auth 模块使用情况,分析权限校验的参数来源(资源 ID/用户 ID 来自路由参数、请求 body 或会话),以及是否做归属校验。若“只判断登录态但缺少资源归属/角色细分”,或“权限校验在部分分支缺失、异常后绕过”,输出 AUTH 或 LOGIC 风险。

  2. CSRF 防护(CSRF):定位 CSRF token 的启用位置、token 接收字段、校验逻辑与失败处理,以及跳过规则。若跳过规则覆盖到状态变更接口,或 token 校验失败后业务仍继续执行,输出 CSRF 风险。

  3. 模板引擎转义与 raw 输出(XSS/TPL):检查模板自动转义策略、raw 输出或跳过转义语法、用户输入进入模板变量的路径。若 raw 输出变量可控且未转义,映射到 XSS 或 TPL。

  4. ORM 写入链路(LOGIC:Mass Assignment):检查是否把 request 参数整体传入模型写入,定位 Model::create/save/update 等写入点,检查 allowField/field/场景等白名单机制。若整体写入且缺少敏感字段约束,或白名单仍含高风险字段,输出 LOGIC 风险。

  5. 数据库原生表达式/原始 SQL 风险(SQL):定位 Db::query、Db::execute、whereRaw、orderRaw、buildExpression 等入口,追踪用户输入进入原生表达式的证据,检查是否有参数化/绑定策略。用户输入进入字符串拼接的原生 SQL 表达式即输出 SQL 风险。

  6. 安全配置与调试暴露(CFG/SESS):检查 app_debug、trace、错误页输出策略、日志级别,以及 cookie/session 安全参数(HttpOnly/Secure/SameSite)。生产环境 debug 开启或堆栈回显输出 CFG 风险。

使用方式

  • 输入:source_path(ThinkPHP 项目根目录);可选 output_path(输出目录,默认 {source_path}_audit)。
  • 输出:{output_path}/framework_audit/thinkphp_{timestamp}.md。
  • 执行时须先完成框架识别,给出依赖证据、入口证据、配置证据、运行目录证据。
  • 每条发现须写明通用类型码、映射原因、位置证据、可观测验证框架与修复建议。

适用场景

适用于对 ThinkPHP 项目进行白盒安全审计、代码安全评审,以及需要按通用漏洞类型体系整理框架层安全问题的场景。

限制

资料未说明具体支持的 ThinkPHP 版本范围、依赖安装方式或运行环境要求,暂未提供。