lirantal/detect-secrets
GitHub: lirantal/detect-secrets
基于 Node.js 封装 Yelp detect-secrets 的开发者友好型密钥泄露检测工具,专为 CI 和 pre-commit 钩子场景设计。
Stars: 51 | Forks: 5
detect-secrets
一款面向开发者的 CI 和 pre-commit hooks 密钥检测工具
# 关于 `detect-secrets` npm 包是一个基于 Node.js 的包装器,用于封装 Yelp 的 [detect-secrets](https://github.com/Yelp/detect-secrets) 工具,旨在提供一种易于访问且对开发者友好的方式,将密钥检测引入 pre-commit hooks 中。 Yelp 的 detect-secrets 基于 Python,需要开发者显式安装。此外,在不同操作系统中进行安装可能具有挑战性。`detect-secrets` 旨在通过以下方式缓解这一挑战: 1. 尝试定位 Yelp 的 detect-secrets 工具,如果它在路径中存在,则执行它。 如果失败,则继续: 2. 尝试定位 docker 二进制文件,如果它存在,则会下载并执行 [lirantal/detect-secrets](https://github.com/lirantal/docker-detect-secrets) 的 docker 容器,该镜像内置了 Yelp 的 detect-secrets。 如果这也失败了: 3. 退出并输出警告信息 -- 上述降级策略用于寻找执行 detect-secrets 工具的可用方法,以保护开发者避免将密钥泄露到源代码控制中。 # 安装 ``` npm install --save detect-secrets ``` 这将会暴露出 `detect-secrets-launcher` 这个 Node.js 可执行文件。 另一种调用它的方式是使用 npx,它将即时下载并执行 detect-secrets 包装器: ``` npx detect-secrets [arguments] ``` # 用法 如果你使用 `husky` 来管理 pre-commit hooks 配置,那么启用密钥检测就像添加另一个 hook 条目一样简单。 ``` "husky": { "hooks": { "pre-commit": "detect-secrets-launcher src/*" } } ``` 如果你使用 `husky` 和 `lint-staged` 来管理 pre-commit hooks 配置,并对暂存文件运行静态代码分析,那么启用密钥检测就像添加另一个 lint-staged 条目一样简单。 以下是一个典型设置的示例: ``` "husky": { "hooks": { "pre-commit": "lint-staged" }, }, "lint-staged": { "linters": { "**/*.js": [ "detect-secrets-launcher --baseline .secrets-baseline" ] } } ``` 如果你没有使用 baseline 文件(它是使用 Yelp 的服务端 detect-secrets 工具创建的),那么你可以直接将其省略,并像 `detect-secrets-launcher` 这样保持简单。 # 示例 要扫描仓库中的 `index.js` 文件以查找其中是否存在潜在的密钥泄露,请运行以下命令: ``` detect-secrets-launcher index.js ``` 请注意,`index.js` 必须已被 git 暂存并纳入版本控制。任何其他未被 git 识别的普通文件都不会被扫描。 # 贡献 请查阅 [CONTIRBUTING](./CONTRIBUTING.md) 以获取有关为本项目做贡献的指南。 # 作者 **detect-secrets** © [Liran Tal](https://github.com/lirantal),基于 [Apache-2.0](./LICENSE) 许可证发布。标签:DevSecOps, GNU通用公共许可证, LNA, MITM代理, Node.js, StruQ, 上游代理, 暗色界面, 自定义脚本, 请求拦截, 逆向工具