用途:在 PHP 源码审计中判断“前端交互类安全漏洞是否成立”,核心是验证用户可控数据在 HTTP 响应中的输出是否安全。构造 payload、绕过 WAF 等运行时利用属于黑盒 exploit 技能范畴,不在本技能内。
主要能力(5 类):
- XSS(反射/存储/DOM):关注 echo、print、模板输出(如 {!! !!})等 Sink;用户输入未转义输出到 HTML 上下文。审计要点包括输出上下文(HTML body、属性、JS 字符串、URL 各需不同转义)、htmlspecialchars 是否使用 ENT_QUOTES 与 UTF-8、模板引擎自动转义是否被关闭(Blade {{ }} 与 {!! !!}、Twig 与 |raw、Smarty 的 $escape_html)、存储型需跨存储边界追踪输出转义、后端 JSON 输出被前端写入 DOM 的 DOM XSS。严重度 High-Critical。
- CSRF:关注状态变更表单/API 缺少 Token 且无 SameSite 保护;检查框架中间件例外(如 Laravel VerifyCsrfToken 的 $except、ThinkPHP 的 token_on)、SameSite 取值(Lax/None/缺省)、自定义 Token 是否绑定 Session、一次性消费与时效。Medium-High。
- 开放重定向:header("Location:") 与框架 redirect() 目标可控;注意 parse_url 绕过(//evil.com、///evil.com、\evil.com、javascript: 伪协议),正确做法是解析 host 后对比白名单而非前缀或正则。Medium。
- CRLF 注入:header()、setcookie() 中用户输入含 \r\n 进入响应头;PHP 7.0+ header() 已检测并告警,setcookie() 到 PHP 8.x 才完善防护;可用于注入 Set-Cookie 或空行后写 Body。Medium-High。
- 会话安全:session_regenerate_id 登录后应调用(参数 true 删旧文件)、Cookie 属性 httponly/secure/samesite、自定义 SessionHandlerInterface 的 read()/write() 注入风险。Medium-High。
使用方式:按技能内检测清单逐项审查,证据模式与安全/危险代码对比见 references/frontend-patterns.md;严重度评分使用统一公式,与 pipeline 一致。
限制:资料未提供价格、平台、安装命令等细节;技能聚焦源码判定,不含黑盒利用。