尧图精选

gitleaks密钥扫描实践:Ontology Playground的secrets:scan完整工作流

🕒 发布时间:2026/9/18 2:32:41 📁 来源:尧图网络
gitleaks密钥扫描实践Ontology Playground的secrets:scan完整工作流【免费下载链接】Ontology-PlaygroundFree, open-source web app for learning about ontologies and Microsoft Fabric IQ. Explore a catalogue of pre-built ontologies, design your own visually, export as RDF/XML, and share interactive diagrams. Zero backend, fully static.项目地址: https://gitcode.com/GitHub_Trending/on/Ontology-PlaygroundOntology Playgroundontology-quest是一个免费开源的本体论学习 Web 应用可以浏览预置的本体目录、可视化设计自己的本体、导出 RDF/XML 并分享交互图表。项目零后端、纯静态但它依然有一套严肃的密钥扫描体系——核心就是npm run secrets:scan这条基于gitleaks的密钥扫描命令配合本地钩子与 CI 工作流把 API Key、令牌等敏感信息挡在仓库门外。为什么一个纯静态项目也需要密钥扫描很多新手以为没有后端 没有密钥可泄。但本项目在 api/ 目录下提供 Azure 静态网站函数其中 GitHub OAuth 代理和 ontology 生成接口都需要读取环境变量比如 OpenAI 端点与 API Key。项目仓库里只放了一份占位模板api/local.settings.json.template真实密钥写在开发者本机{ IsEncrypted: false, Values: { FUNCTIONS_WORKER_RUNTIME: node, AZURE_OPENAI_ENDPOINT: https://YOUR-RESOURCE.openai.azure.com/, AZURE_OPENAI_API_KEY: YOUR-API-KEY, AZURE_OPENAI_DEPLOYMENT: gpt-4o-mini } }只要有人在模板里随手填了真实 Key 再提交事故就发生了。gitleaks 的作用就是用正则 熵值检测自动识别这类高危模式。一键全仓扫描secrets:scan 命令解析在 package.json 中只有一行脚本定义secrets:scan: gitleaks detect --source . --redact --config .gitleaks.toml三个参数各管一件事参数作用--source .扫描当前目录的工作区文件非 git 历史速度快适合提交前自查--redact在输出报告中自动打码命中的密钥避免报告本身二次泄密--config .gitleaks.toml使用项目自定义规则而不是裸跑默认规则运行方式很简单npm run secrets:scan退出码为 0 表示干净发现密钥时 gitleaks 会打印文件路径、行号和规则名并以非零码退出——这让它天然适合接入 CI。读懂 .gitleaks.toml哪些文件可以安全豁免配置文件 .gitleaks.toml 只有十几行思路非常清晰[extend] useDefault true # 先继承 gitleaks 官方默认的全部规则 [allowlist] # 再豁免确定不含密钥的路径 paths [ ^build/, ^dist/, ^node_modules/, ^public/learn\.json$, ^public/catalogue\.json$, ^api/local\.settings\.json\.template$ ]两处细节值得学习useDefault true不重复造轮子官方 80 条规则AWS、GitHub Token、私钥、JWT 等全部生效项目只需维护豁免清单。模板文件豁免api/local.settings.json.template 里含YOUR-API-KEY这类高熵占位符默认规则可能误报所以精确豁免该文件——注意它豁免的是template真实local.settings.json依旧受扫描保护。本地钩子在 commit 阶段就拦截密钥单靠想起来才跑一次扫描是不够的所以项目把扫描做成了 git 钩子。第一步运行安装脚本 scripts/security-setup.sh它做两件事git config core.hooksPath .githooks # 把钩子目录指到仓库内的 .githooks gitleaks detect --source . --redact --config .gitleaks.toml # 顺手做首次全仓体检第二步之后的每次git commit都会触发 .githooks/pre-commit 钩子gitleaks protect --staged --redact --config .gitleaks.toml注意这里用的是gitleaks protect --staged它只扫暂存区改动速度极快且一旦命中就直接终止 commit——密钥根本进不了提交历史。若本机未安装 gitleaks钩子会友好提示brew install gitleaks并跳过不会阻断正常开发。CI 工作流GitHub Actions 里的最后防线本地钩子可以被绕过所以 secret-scan.yml 在 CI 中设置了独立检查。该工作流在推送到main或提交 PR 时触发有三个工程化亮点全历史扫描fetch-depth: 0拉取完整 git 历史配合gitleaks git --redact扫描每一个历史提交——就算你本地reset删掉密钥历史里的痕迹照样被抓出来。固定版本 校验和安装步骤锁定VERSION8.24.2并下载官方checksums.txt做sha256sum -c校验防二进制被篡改。最小权限permissions: contents: read扫描任务只读代码符合最小权限原则。与 ci.yml 中的构建、测试、RDF 校验任务并行运行secret-scan红灯 PR 无法合入。新手上手清单5 步跑通密钥扫描克隆仓库如需克隆git clone https://gitcode.com/GitHub_Trending/on/Ontology-Playground进入项目目录安装 gitleaksmacOS 可用brew install gitleaks其他平台见官方发布页运行sh scripts/security-setup.sh装好钩子并完成首次扫描日常提交自动拦截提交前想再确认跑一次npm run secrets:scan提交 PR在 Checks 里确认 Secret Scan / gitleaks 任务为绿。小结Ontology Playground 的密钥防护是三道闸门的经典范本层次机制文件本地钩子gitleaks protect --staged拦截 commit.githooks/pre-commit手动自查npm run secrets:scan全仓扫描package.jsonCI 门禁全历史扫描 校验和校验PR 强制通过secret-scan.yml规则共享一份 .gitleaks.toml继承官方默认 精确豁免三层复用、零漂移。对新手而言这套模板占位 豁免清单 钩子 CI的组合拳可以直接照搬到任何需要管理 Azure/OpenAI 密钥的静态站点项目里。【免费下载链接】Ontology-PlaygroundFree, open-source web app for learning about ontologies and Microsoft Fabric IQ. Explore a catalogue of pre-built ontologies, design your own visually, export as RDF/XML, and share interactive diagrams. Zero backend, fully static.项目地址: https://gitcode.com/GitHub_Trending/on/Ontology-Playground创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联 返回资讯列表 →