Appearance
Everything Claude Code Opensource Sanitizer Agent 是开源分支发布前必用的安全审计代理,专为自动化检测泄漏的密钥、个人信息、内部引用与危险文件而设计。通过 20+ 正则模式全量扫描源码与 Git 历史,自动生成结构化的安全报告(PASS/FAIL/PASS WITH WARNINGS),并与 Fork、Packager 等代理协同,确保开源项目在发布前无安全隐患。相比直接让 Claude 回答,专用 Agent 提供可追溯、不可篡改、标准化的安全验证闭环,是生产级 AI 编程流程的核心保障。
Everything Claude Code Opensource Sanitizer Agent:用 20+ 正则模式验证开源分支安全性的发布前扫描
在开源项目发布前,如何确保分支中没有任何敏感信息、内部引用或高风险文件泄漏?单靠人工检查或让 Claude 直接“帮忙看看”远远不够。Everything Claude Code Opensource Sanitizer Agent(以下简称 opensource-sanitizer)是专为此场景打造的安全审计代理,能用 20+ 正则模式自动化、全量、结构化地扫描和验证开源分支的安全性,是生产级开源发布流水线的必备环节。
1. opensource-sanitizer Agent 能解决什么问题?
核心用途:
- 防止敏感信息泄漏:自动检测源码、配置、历史记录中是否存在 API 密钥、数据库账号、JWT、私钥等敏感数据。
- 识别个人信息与内部引用:精准识别 PII(如私人邮箱、内网 IP、SSH 连接串)、绝对路径、内部域名等不可外泄内容。
- 危险文件与配置审计:检查是否有 .env/.pem/.key/credentials.json 等危险文件残留,确保发布包干净无风险。
- Git 历史溯源:不仅查当前文件,还会审计 Git 提交历史,防止“删掉了但历史还在”的安全盲区。
- 生成标准化安全报告:输出结构化的
SANITIZATION_REPORT.md,明确 PASS/FAIL/PASS WITH WARNINGS,便于团队追溯与合规存档。
适用场景:
- 任何 Fork、分支、重构后准备开源的仓库,发布前必须执行 opensource-sanitizer。
- 与 Opensource Forker Agent、Opensource Packager Agent 组成一键开源流水线,自动衔接 Fork→Sanitize→Package 全流程。
- 需要合规证明、第三方安全背书或大规模自动化开源时,批量集成到 CI/CD。
为什么不能直接让 Claude 检查?
- Claude 本体无法保证全量、无遗漏地遍历所有文件和历史,也不会严格执行 20+ 正则和危险文件清单,容易漏检。
- 专用 Agent 具备“永远不信任 Forker,独立二次验证”的安全立场,且输出格式标准化、可自动集成,适合生产环境闭环。
2. opensource-sanitizer 的具体能力
能做什么?
- 全目录递归扫描:排除 node_modules、.git、pycache、二进制等无关目录,所有文本文件逐行正则匹配。
- 20+ 正则模式:涵盖 API 密钥、AWS/Google/Slack/SendGrid 等主流服务凭证、数据库连接串、JWT、私钥、GitHub Token、个人邮箱、内网 IP、SSH 连接、绝对路径、.secrets/ 等敏感模式。
- 危险文件/目录检测:自动判定 .env、.pem、.key、credentials.json、.secrets/、sessions/、*.map 等高风险文件是否存在。
- 配置完整性校验:检查 .env.example 是否存在、变量是否覆盖所有代码引用、docker-compose.yml 是否有硬编码。
- Git 历史审计:确认是否为单一初始提交,搜索历史中是否遗留敏感信息。
- 输出标准化报告:生成
SANITIZATION_REPORT.md,按 Secrets、PII、Internal References、Dangerous Files、Config Completeness、Git History 六大类分别 PASS/FAIL,列出所有关键发现和警告。
不能做什么?
- 只读模式:不会修改任何源码、配置或历史,只生成报告。
- 不自动修复:所有发现仅报告,不会自动清理或修正,需要开发者手动处理。
- 不输出完整密钥内容:报告中只显示敏感值前 4 位,防止二次泄漏。
触发方式
- 自动触发:作为 Opensource Pipeline Skill 的第二阶段,Fork 完成后自动执行。
- 手动调用:可在任何开源分支目录下,手动指定“Sanitize”操作,适合 CI/CD 或本地安全自查。
- 与 Hooks 配合:可通过 Everything Claude Code Hooks 在 PreToolUse/PreCommit 等阶段自动插入。
3. opensource-sanitizer 的协作模式
- 与 Forker 组合:先用 Opensource Forker Agent 复制并初步清理项目,再用 opensource-sanitizer 独立二次深度审计,确保“永远不信任上游”。
- 与 Packager 组合:Sanitizer 通过后,自动交给 Opensource Packager Agent 生成 README、CLAUDE.md、setup.sh 等开源包,形成无缝流水线。
- 与 Security Reviewer 互补:Sanitizer 专注于静态模式和文件级风险,复杂业务安全可交由 Security Reviewer Agent 做深度代码审计。
- 与 Rules/Skill 体系联动:可结合 Everything Claude Code Rules 体系 强制所有开源发布前必须通过 sanitizer,纳入团队安全合规标准。
4. 实际使用示例
场景:开源前自动安全审计
用户操作:
bash
# 假设已 Fork 并准备发布
ecc run opensource-sanitizer --project /home/user/opensource-staging/my-apiAgent 执行:
- 递归扫描 47 个文件,逐条正则匹配,排除无关目录
- 检查 .env.example 是否覆盖所有变量
- 审计 git log,确认只有 1 个初始提交,无历史泄漏
- 检查危险文件和目录是否存在
输出报告(部分):
markdown
# Sanitization Report: my-api
**Date:** 2024-06-18
**Auditor:** opensource-sanitizer v1.0.0
**Verdict:** PASS WITH WARNINGS
## Summary
| Category | Status | Findings |
|---------------------|--------|----------|
| Secrets | PASS | 0 |
| PII | PASS | 0 |
| Internal References | PASS | 0 |
| Dangerous Files | PASS | 0 |
| Config Completeness | WARN | 1 |
| Git History | PASS | 0 |
## Warnings (Review Before Release)
1. **[CONFIG]** `src/app.js:8` — Port 8080 hardcoded, should be configurable
## .env.example Audit
- Variables in code but NOT in .env.example: `API_URL`
- Variables in .env.example but NOT in code: `DEBUG`
## Recommendation
Project passes critical checks. Review 1 warning before release.场景:CI 自动化集成
在 CI 流水线中加一行:
yaml
- name: Run opensource-sanitizer
run: ecc run opensource-sanitizer --project ${{ github.workspace }}如有 FAIL,CI 直接阻断发布,保障开源合规。
5. 操作步骤总结
- Fork 项目(可用 Forker Agent)
- 执行 opensource-sanitizer(自动或手动)
- 审查
SANITIZATION_REPORT.md,如有 FAIL 必须修复所有关键问题 - 通过后交给 Packager Agent,生成最终开源包
- 归档报告,便于合规追溯
推荐结合 Everything Claude Code 完全指南 和 AI 编程助手安全指南 理解完整流水线与安全最佳实践。
FAQ
Q: opensource-sanitizer 检查的范围包括哪些内容?
A: 包括所有文本文件(排除 node_modules、.git 等),敏感正则匹配、危险文件存在性、.env.example 配置完整性以及 Git 历史中的敏感信息。
Q: 检查出 FAIL 后会自动修复吗?
A: 不会,opensource-sanitizer 只读不改,所有关键问题需人工修复后重新执行。
Q: 可以单独用 sanitizer,不跑完整开源流水线吗?
A: 可以,支持手动独立调用,适合本地安全自查或集成到任何 CI/CD 流程。
Q: 为什么不能直接让 Claude 检查敏感信息?
A: Claude 本体无法保证全量遍历、正则精度和标准化输出,容易漏检且不可追溯,生产环境必须用专用 Agent。