写代码时顺手就把安全漏洞修了,以前 Vibe Coding 得靠自己盯,现在 Claude Code 自己就能干,你甚至都不需要知道是什么漏洞。

Anthropic 内部实测,装了 security-guidance 这个插件后,PR 上的安全相关反馈减少了30%到40%。

一个轻量级的自动安全审查工具,嵌在你写代码的过程里,你几乎感觉不到它的存在,但漏洞已经被修掉了。
三层审查,各管一段
security-guidance 插件的核心思路是在 Claude 写代码的三个关键节点上插入审查,每个节点看的东西不一样,深度也递进。
第一层,文件编辑时的模式匹配。
Claude 每次往文件里写东西,插件立刻扫描新内容,查找大约25种已知危险模式。
动态代码执行比如 eval()、new Function、os.system、child_process.exec;不安全的反序列化比如 pickle.load、torch.load(weights_only=False)、yaml.load;DOM 注入比如 dangerouslySetInnerHTML、innerHTML =、document.write;还有硬编码密钥、.github/workflows/ 下的工作流文件编辑,这些都在监控范围里。
这一层纯粹是正则和子串匹配,不调用任何模型,零额外成本,速度极快。
检查在编辑落地后执行,警告追加到 Claude 的上下文中供下一步参考。
每个模式在每个文件每个会话中只触发一次警告,不会重复刷屏。你也可以通过 security-patterns.yaml 文件给这一层添加自己的模式。
第二层,每一轮对话结束后的 diff 审查。
一轮对话指的是你发一条消息,Claude 工作、回复,然后这一轮结束。插件在这个节点计算工作树中所有变更的 git diff,包括 Claude 的编辑工具、Bash 命令和子代理(Subagent)造成的所有变更,把 diff 发给一个独立的 LLM 调用,默认使用 Claude Opus 4.7 模型。
这个审查能抓到模式匹配无法发现的问题。比如授权绕过、不安全的直接对象引用(IDOR)、注入攻击、服务端请求伪造(SSRF)、弱加密等。
审查结果直接反馈给 Claude,Claude 在同一会话中修复问题,你看到的是修复后的代码。每轮最多审查30个变更文件,连续触发不超过3次就会让出控制权给你。你在会话中同时看到发现和 Claude 的修复过程。
第三层,提交时的深度审查。
当 Claude 通过 Bash 工具执行 git commit 或 git push 时,插件启动一个更深入的 Agentic(代理式)审查。这个审查由 SDK 驱动,会读取周围的代码,包括调用方、校验器、相关文件,通过 Read、Grep、Glob 等工具追踪数据流,确认某个发现是否真的有问题。
额外的上下文信息让误报率保持较低水平,能捕获跨文件漏洞,比如 IDOR、认证绕过、跨文件 SSRF 这类模式匹配容易漏掉的问题。
提交审查每小时上限20次。如果你自己在终端手动提交,则不会触发审查,这个层只管 Claude 自己做的提交和推送。如果提交审查的发现和 diff 审查已经报过的重复,Claude 不会再被提示一遍,所以一次干净的提交不会产生多余的输出。
有一个关键的设计细节:审查模型和写代码的 Claude 不是同一个实例。
模式匹配是确定性匹配,不涉及模型;而 diff 审查和提交审查都运行在一个独立的 Claude 调用上,用全新的上下文和安全专用的提示词,审查者从零开始看代码。
换句话说,写代码的 Claude 不会给自己打分。另外,三个层都不会阻止写入或提交,发现以指令形式传给正在写代码的 Claude,Claude 在对话中处理,审查模型也可能遗漏问题。
安装与配置
安装很简单。在 Claude Code 会话中输入一条命令就行:
/plugin install security-guidance@claude-plugins-official安装时会提示选择作用域。选 user scope 会把插件写入你的用户设置,以后在这台机器上启动的所有新会话都会加载它。
如果 Claude Code 提示找不到 marketplace,先运行 /plugin marketplace add anthropics/claude-plugins-official,再重试安装。
装完后在当前会话执行 /reload-plugins,不用重启就能生效。marketplace 默认随 Claude Code 开启,除了装 CLI 本身,不需要额外设置。
前提条件有几条:Claude Code CLI 版本不低于 v2.1.144,系统 PATH 上有 Python 3.8 以上版本(插件会依次尝试 python3、python、py -3),工作目录需要是 git 仓库(因为 diff 审查和提交审查依赖 git 状态,不在仓库中会静默跳过,但模式匹配在任何地方都能工作),还需要一个可用的 API 通道,可以是订阅、API key 或第三方提供商配置。
首次运行时,插件会在 ~/.claude/security/ 下创建虚拟环境并安装 Claude Agent SDK,这需要网络和磁盘访问权限。在 Windows 上虚拟环境步骤被跳过,Agentic 提交审查只在 claude-agent-sdk 已经可导入时才运行,否则回退到单次审查。
如果你用的是 Claude Code 网页版,用户级插件不会自动生效,因为那些会话运行在 Anthropic 基础设施上。
要让插件在那里生效,或者想让所有克隆仓库的人都能用,需要在项目的 .claude/settings.json 中声明:
{ "enabledPlugins": { "security-guidance@claude-plugins-official": true }}
管理员也可以通过 managed settings 在组织范围内统一启用。
自定义规则
插件提供了两个扩展点:一个 Markdown 文件给模型审查用,一个 YAML 或 JSON 文件给模式匹配用。
两个都是增量式的,你可以加规则,但不能通过这些文件禁用内置规则。内置规则覆盖常见的 Web 漏洞类型,包括注入、XSS、SSRF、硬编码密钥、IDOR、认证绕过、不安全的反序列化和路径遍历等。
自定义规则针对的是模型无法推断的、你代码库特有的东西。
给模型审查加规则,在项目里创建 .claude/claude-security-guidance.md,用自然语言描述你的威胁模型和审查清单。

这些规则会被加载到 LLM 审查的提示词中,作为内置漏洞清单的补充。需要注意的是,第三层 Agentic 提交审查目前不会读取这个文件,只在前两层生效。
这些规则是审查者的参考,不是确定性护栏,插件会把违规作为发现反馈给 Claude 修复,但不保证每次违规都被捕获,也不会阻止写入。想禁用某个特定发现,可以在代码行上加注释解释为什么安全,LLM 审查者会把行内解释当作排除依据;系统性的排除则写到 claude-security-guidance.md 里。
成本与控制
模式匹配层零成本。diff 审查和提交审查各消耗额外的模型用量,和普通 Claude 请求一样计入使用量。提交审查是 Agentic 的,每次提交可能需要多个模型轮次。
两个模型审查默认都用 Claude Opus 4.7,你可以通过环境变量换模型:SECURITY_REVIEW_MODEL 控制 diff 审查用的模型,SG_AGENTIC_MODEL 控制提交审查用的模型。
不同提供商的模型 ID 写法不同:默认 Anthropic API 用 claude-opus-4-7,Bedrock 用 us.anthropic.claude-opus-4-7,Vertex 用 claude-opus-4-7@20260218。
如果觉得误报太多,可以降到 Claude Sonnet 4.6 试试;如果优先精度,就留在 Opus 4.7。
还有一个高召回率模式 SG_DUAL_OR=on,会跑两次并行审查然后合并结果,能多抓几个百分点的漏洞,但 API 成本大约翻倍,官方说法是大多数用户不需要开。
现在插件在所有付费计划上可用。
插件会把数据发送到模型端点执行审查。diff 审查发送变更的文件路径、diff 片段和相关文件内容;提交审查还会发送审查者通过 Read、Grep、Glob 拉取的任何文件。你的 claude-security-guidance.md 内容也会附加到每次审查的提示词里,所以别在里面放密钥。
数据去向取决于你的 Claude Code 配置:默认发送到 api.anthropic.com,受 Anthropic 商业条款和隐私政策约束;如果配了 LLM gateway(ANTHROPIC_BASE_URL),数据发到你的网关地址,适用网关运营方的条款;第三方提供商(Bedrock、Vertex、Foundry、Mantle)则发到对应的提供商端点,适用提供商的数据处理条款。
官方表示,这是一个尽力而为的辅助工具,不是安全保证。
发现是建议,不能替代人工代码审查、SAST/DAST、依赖扫描或渗透测试。
审查模型可能漏掉漏洞、产生误报,在不同代码库、语言和模型版本上表现会有差异,不提供任何担保。
Claude Code 的 security-guidance 插件把安全审查嵌入到写代码的过程中,不等 PR、不等 CI,写的时候就修。
30%到40%的安全反馈减少说明它确实管用,但你的Token跟得上马?
参考资料:
https://x.com/ClaudeDevs/status/2059385239781384341
https://code.claude.com/docs/en/security-guidance
https://github.com/anthropics/claude-code/tree/main/plugins/security-guidance




夜雨聆风