mcpField
F
find-bugs

find-bugs

github.com/davila7测试与质量33.0k447 次安装今天更新
代码仓库

关于 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/davila7/claude-code-templates --skill find-bugs

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

详细介绍

查找 Bug

审查此分支上的变更,查找 Bug、安全漏洞和代码质量问题。

阶段 1:完整收集输入

  1. 获取完整 diff:git diff master...HEAD
  2. 如果输出被截断,请逐个读取每个变更文件,直到你已查看每一行变更
  3. 在继续之前,列出此分支中修改的所有文件

阶段 2:攻击面映射

对于每个变更文件,识别并列出:

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

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

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

阶段 4:验证

对于每个潜在问题:

  • 检查它是否已在变更代码的其他地方处理
  • 搜索覆盖该场景的现有测试
  • 阅读周围上下文以验证该问题确实存在

阶段 5:结论前审计

在最终确定之前,你必须:

  1. 列出你审查过的每个文件,并确认你已完整阅读
  2. 列出每个检查清单项,并注明你发现了问题还是确认其无问题
  3. 列出你无法完全验证的任何区域及原因
  4. 只有在此之后才提供你的最终发现

输出格式

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

跳过:风格/格式问题

对于每个问题:

  • File:Line - 简要描述
  • 严重性:Critical/High/Medium/Low
  • 问题:哪里不对
  • 证据:为什么这是真实的(尚未修复、没有现有测试等)
  • 修复:具体建议
  • 参考:OWASP、RFC 或其他适用标准

如果你没有发现任何重要问题,请说明——不要编造问题。

不要进行更改——只报告发现。我会决定要处理什么。

评论

支持 Markdown