SuperAPI AI 工具集

php-symfony-audit

安全与审计

查看项目

更新于 10-15 08:50

技能介绍

PHP Symfony 框架安全审计(php-symfony-audit)用于分析 Symfony 项目源码中的“框架特效安全机制”和“配置/用法踩坑”。

用途

对 Symfony 项目进行白盒静态安全审计,重点覆盖框架自身的安全机制与常见配置错误。

主要能力

  • config/packages/security*.yaml 的 access_control、firewalls 配置正确性
  • CSRF 防护机制(表单提交与 token 验证)
  • Twig 渲染自动转义与 raw 输出风险
  • Symfony 访问表达式与安全拦截链(映射到 AUTH/EXPR/TPL)
  • HttpClient 外联策略(SSRF 类风险以通用 SSRF 类型映射)

使用方式

输入:

  • source_path:Symfony 项目源码根目录
  • 可选 output_path:输出目录路径(默认 {source_path}_audit)

输出目录: {output_path}/framework_audit/ symfony_{timestamp}.md

必做检查

框架识别:必须给出识别为 Symfony 的证据点(典型目录 config/、src/、templates/;依赖证据 composer.json 中 symfony/framework-bundle 等;入口证据 public/index.php 或类似前端控制器)。

风险类型映射:每条发现必须写明适用的通用类型码(AUTH / CSRF / CFG / XSS / TPL / LOGIC / SESS / SSRF / EXPR 等)及映射原因。

必审清单:

  1. 访问控制与鉴权策略(AUTH):定位 security.yaml 中的 access_control 规则、firewalls 配置(anonymous、stateless 与认证方式)、switch_user、role_hierarchy 或 voter/policy 类配置。
  2. CSRF 防护(CSRF):定位 CSRF 相关配置、表单类型中 token 的生成与接收方式、token 验证失败的处理路径。
  3. Twig 自动转义与 raw 输出(XSS/TPL):定位自动转义是否被关闭、模板中 raw 输出点(|raw、{% autoescape false %} 等)、raw 输出变量的数据来源。
  4. 安全表达式与求值风险(EXPR/TPL/AUTH):定位 ExpressionLanguage 用于 security 的位置、表达式字符串是否可能被用户控制。
  5. 外联 HTTP 与内网访问(SSRF):检查 HttpClient/KernelInterface 等外联调用封装入口、URL/host 是否来源于用户输入、是否存在 allowlist 或内网拦截。

可观测验证(PoC)

至少给出以下两类其一并写清观察点:

  • 访问控制错误:用未登录/低权限用户访问疑似受保护路由,观察响应差异
  • CSRF 错误:构造表单请求缺失或伪造 CSRF token,观察状态码/错误路径

PoC 要求包含真实路由与真实表单 action(或路由路径),并说明预期观察点(例如是否返回 403、是否继续执行状态变更)。

输出完整性

输出需包含:Symfony 识别证据点;AUTH/CSRF/Twig(raw)/安全表达式/HttpClient(可选) 五块检查结果;每条风险附映射类型码、位置证据、可观测验证框架与修复建议。