SuperAPI AI 工具集

security-review

安全与审计

查看项目

更新于 10-16 09:18

技能介绍

用途

Security Review 用于审查代码变更中的安全漏洞,重点关注 OWASP Top 10 以及项目技术栈特有的安全问题。它适合在本地作为分叉子代理运行,也适合在 CI 中运行(例如通过 claude-code-action),由工作流将报告转换为 GitHub PR 审查评论。

主要能力

该技能会审查变更文件,覆盖以下安全领域:

  • 注入与输入处理:SQL 注入(字符串拼接而非参数化查询)、命令注入(用户输入传入 shell 命令)、XSS(dangerouslySetInnerHTML 或未转义反射)、路径遍历(未校验的文件路径中的 ..)、原型污染(对用户可控对象使用 Object.assign 或展开而不做键白名单)。
  • 认证与授权:缺失的认证检查、IDOR(接受 ID 参数但未验证调用者访问权限)、权限提升(删除、移动、管理操作未按角色/权限限制)。
  • 数据暴露:过度获取(API 响应包含超出客户端需要的数据)、错误泄露(堆栈跟踪、SQL 错误、内部路径)、日志中的敏感数据(密码、令牌、PII)。
  • 实时/WebSocket 安全(仅当项目有 WebSocket 层时):频道授权、消息伪造、载荷校验。
  • 拒绝服务:无界查询、正则 DoS、资源耗尽(文件上传、大请求体、昂贵操作缺少限流或大小限制)。
  • 密码学与密钥:硬编码密钥、弱随机数(安全敏感操作使用 Math.random() 而非 crypto.randomUUID())、缺失 TLS(生产环境使用 ws://)。
  • 依赖:已知漏洞(bun audit / npm audit / pip-audit)、依赖导致的原型污染。

使用方式

  1. 确定审查范围:运行 git diff main...HEAD --name-only 获取本分支相对 main 的变更文件。若失败(无 main、分离工作树等),回退到 git diff HEAD --name-only 查看未提交变更,再回退到 git diff --cached --name-only 查看已暂存文件。若无 diff 可用,询问用户要审查哪些文件。
  2. 先阅读 CLAUDE.md 了解项目技术栈及具有安全敏感面的子系统(认证、实时、支付、文件上传)。
  3. 完整阅读每个变更文件后再开始审查。
  4. 按严重程度组织发现:Critical(无需认证即可利用,数据丢失、未授权访问或远程代码执行)、High(需要一定前置条件,权限提升、重大数据泄露)、Medium(纵深防御问题)、Low(加固建议)。
  5. 每条发现包含:文件与行号(精确 path:line 或 path:start-end,跨文件发现列出每个位置)、严重程度、漏洞类型(OWASP 类别或 CWE)、当前代码片段、利用场景、修复建议(最好有前后对比片段)、周边上下文(调用方、需同步修改的相关文件、修复依赖的校验层、应添加的测试)。
  6. 返回完整格式化报告作为最终消息,而非摘要。

适用场景

  • 本地作为分叉子代理运行:主会话看不到你读取的文件或推理过程,只看到最终报告。
  • CI 中运行:工作流将报告转换为 GitHub PR 审查评论。
  • 报告消费者将其作为工作清单,因此报告必须完整且自包含。

限制

  • 不标记风格问题(那是代码审查的职责)。
  • 除非代码级修复不足,否则不建议添加 WAF、限流器或基础设施变更。
  • 不报告需要物理访问或基础设施被攻破的理论问题。
  • 不堆砌问题,优先处理最重要的发现。
  • 修复阶段(或 PR 评论发布阶段)在报告消费者处进行,不在本技能内。本地主会话将按严重程度顺序进行最小化针对性修复,并在每次修复后运行 bun run check + bun test。
  • 实时/WebSocket 安全部分仅当项目有 WebSocket 层时相关。
  • 依赖检查需 bun audit / npm audit / pip-audit 可用。