SuperAPI AI 工具集

privacy-guard

安全与审计

查看项目

更新于 10-16 05:48

技能介绍

用途:防止在公开仓库(或日后可能公开的仓库)中意外泄露私有基础设施信息。公开仓库是边界,任何描述私有基础设施的内容都不得越界,如节点主机名与内部别名、未公开的内部项目名、本地用户名、私人及工作邮箱、个人域名与内部服务 URL、家目录绝对路径、私网与 VPN 地址段(如 Tailscale CGNAT 100.64.0.0/10)、cookie 与凭据。通用的公开产品技术名(Tailscale、Docker、n8n)、维护者的公开 GitHub 用户名、以通用形式描述的部署模式不属于敏感信息。

主要能力:一是 Claude 会话中的行为规则,始终生效:不把内部标识写入已提交文件;用户在对话中提到内部名称不等于授权写入仓库;每次提交前重读 diff 查找忽略名单词条;同样适用于提交信息、分支名、PR/issue 标题与正文、CHANGELOG、发布物;若敏感词条已进入已发布历史,立即告知用户。二是每仓库技术闸门:本地且被 gitignore 的 denylist 加 gitleaks 的 pre-commit 钩子。

使用方式:在目标仓库根目录执行 setup <repo-path>,把 references/check_privacy.sh 复制为 scripts/check_privacy.sh 并加可执行权限,从私有种子或模板创建 .local/privacy-denylist.txt,确保 .gitignore 含 .local/,把 pre-commit-snippet.yaml 的内容加入 .pre-commit-config.yaml,运行 pre-commit install(有 push 钩子则加 --hook-type pre-push)。验证时用真实词条(去掉锚点)暂存后应退出码 1,无词条文件应退出码 0。若仓库设置了 core.hooksPath,改为在既有钩子中调用 check_privacy.sh 并处理暂存文件列表。新敏感词条出现时更新私有种子并同步到各公开仓库的 denylist。可用 references/check-sync.sh REPO... 检查副本同步,输出 OK/BEHIND/DIVERGED/NONE。

限制:防护是客户端的,只保护拥有 denylist 的节点上的提交;外部贡献者和 CI 中钩子为 no-op,通用密钥仍由 gitleaks 覆盖。它只扫描提交新增的行,不审计历史;不覆盖在 GitHub 网页界面的手动粘贴;词边界模式可能在哈希和 ID 中误报。check-sync.sh 比较的是插件检出中的副本,需先更新 marketplace 与插件再信任结果。denylist 本身绝不提交,否则会暴露其保护的词条。