mcpField
F
find-bugs

find-bugs

github.com/getsentry测试与质量1.1k7.1k 次安装5 天前更新
代码仓库

关于 find-bugs

用于审查当前分支变更的代码审查技能,面向需要发现漏洞、缺陷和代码质量问题的开发者。它通过完整收集差异、逐项检查攻击面并验证上下文来形成结论,且只报告问题,不修改代码。

主要功能

  1. 01收集并检查完整差异
  2. 02映射各文件攻击面
  3. 03逐项执行安全检查
  4. 04结合上下文与测试验证问题
  5. 05按严重程度组织报告

适用场景

  1. 01审查分支中的代码变更
  2. 02检查认证、授权和输入处理
  3. 03定位变更引入的安全或逻辑缺陷
  4. 04生成带修复建议的审查发现

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/getsentry/skills --skill find-bugs

安装后在 Claude Code 中输入/find-bugs确认已加载。

详细介绍

查找 Bug

检查此分支中的更改,找出 Bug、安全漏洞和代码质量问题。

阶段 1:完整收集输入

  1. 获取完整 diff:git diff $(gh repo view --json defaultBranchRef --jq '.defaultBranchRef.name')...HEAD
  2. 如果输出被截断,请逐个读取每个更改过的文件,直到查看了所有更改的行
  3. 继续之前,列出此分支中所有修改过的文件

阶段 2:攻击面梳理

针对每个更改过的文件,识别并列出:

  • 所有用户输入(请求参数、请求头、请求体、URL 组件)
  • 所有数据库查询
  • 所有身份验证/授权检查
  • 所有会话/状态操作
  • 所有外部调用
  • 所有加密操作

阶段 3:安全检查清单(检查每个文件的每一项)

  • 注入:SQL、命令、模板、请求头注入
  • XSS:模板中的所有输出是否都经过正确转义?
  • 身份验证:所有受保护的操作是否都进行了身份验证检查?
  • 授权/IDOR:是否验证了访问控制,而不只是身份验证?
  • CSRF:更改状态的操作是否受到保护?
  • 竞态条件:任何先读后写模式中是否存在 TOCTOU?
  • 会话:会话固定、过期时间、安全标志?
  • 加密:是否使用安全随机数和适当算法?日志中是否泄露机密?
  • 信息泄露:错误消息、日志、时序攻击?
  • DoS:是否存在无界操作、缺少速率限制、资源耗尽?
  • 业务逻辑:边界情况、状态机违规、数值溢出?

阶段 4:验证

对于每个潜在问题:

  • 检查更改过的代码中的其他位置是否已处理该问题
  • 搜索是否有现有测试覆盖此场景
  • 阅读周边上下文,确认问题确实存在

阶段 5:结论前审查

定稿前,必须:

  1. 列出审查过的每个文件,并确认已完整阅读
  2. 列出每项检查清单内容,并注明是否发现问题或确认无问题
  3. 列出无法完全验证的方面及其原因
  4. 只有完成以上步骤后,才能给出最终发现

输出格式

优先级:安全漏洞 > Bug > 代码质量

跳过:风格/格式问题

对于每个问题:

  • 文件:行号 - 简要描述
  • 严重性:严重/高/中/低
  • 问题:具体问题
  • 证据:问题为何确实存在(尚未修复、没有现有测试等)
  • 修复:具体建议
  • 参考资料:适用时注明 OWASP、RFC 或其他标准

如果没有发现重大问题,请如实说明,不要凭空捏造问题。

不要进行任何更改,只需报告发现的问题。我会决定如何处理。

评论

支持 Markdown