Detect-secrets是现代软件项目的安全代码审查工具。 它由Great Scott Gadgets开发,可以通过扫描代码库以查找硬编码密码,API密钥和其他机密信息来帮助保护其秘密。
在本篇文章中,我们将介绍如何使用 npm 包 detect-secrets 来查找并修复您的代码中的密码和其他敏感信息。
安装 detect-secrets
要安装 npm 包 detect-secrets,您需要在终端中运行以下命令:
npm install detect-secrets
这将在本地安装 detect-secrets 库,并准备使用它来扫描您的代码库。
使用 detect-secrets
使用 detect-secrets 软件包很简单。要在代码库中运行 detect-secrets,您需要在终端中运行以下命令:
npx detect-secrets scan
这将扫描当前目录下的所有文件,并查找在 detect-secrets 规则集中定义的已知敏感信息。
指定自定义的检测规则
为了查找您自己定义的敏感信息,您可以创建一个 .secrets.baseline 文件,该文件将包含您自己的检测规则。要使用此文件进行扫描,您可以运行以下命令:
npx detect-secrets scan --baseline .secrets.baseline
这将扫描您的文件,并使用 .secrets.baseline 文件中定义的规则来查找敏感信息。
检测结果的处理
一旦 detect-secrets 扫描完成,它将输出检测结果。输出将列出已检测到的敏感密钥及其位置,如下所示:
-- -------------------- ---- ------- --------- ------- ----- -- -- --------- -- --- -------------------------------------------------------------------------------- --- ------ --- ------------------- --- ------------------- ----- --- ---- --------- ------- --- --- -- ----- ---------- ------ -------- ------ --- ------- ----- -- ------- ------- -- --- ---- -------- --------- -------- --- ------ ---- ---------- ------------ -- ----- --- ----- ---------- --- --- ----- ---- ----- ----- -------- ---------- ----- -- ------ -------- --------- ------- -------- -- -------- ------- -- --- ---------- ------- ------------------------------------------------------
如果 detect-secrets 发现敏感信息,则建议您手动检查它们。 通常,您可以将这些敏感密钥存储在环境变量中,以避免将它们硬编码进代码库中。
编写规则集
如果您需要自定义 detect-secrets 的规则集,您可以编写自己的规则。规则定义是特定规则,用于侦测代码库中的特定机密信息。您可以定义自己的规则,用于检测您自己的机密信息,并添加到规则集中。
以下是示例规则:
plugins: HexHighEntropyString: # 声明密码,API密钥或其他机密信息的最小熵门限 limit: 3.5 # 声明该规则适用于文件的类型的正则表达式 path: "(sha[0-9]+sum|pgpass|pem|key|jks|p12|pkcs12|asc|sig|crx|appx|appxbundle|nb0|nbf|vib|vibx|ova|mxf|tar|tar.bzip|tar.bz|tar.gz|gem|tbz|tbz2|tgz|war|zipx|xpi)$"
上述规则的作用是查找定义了诸如RSA、PGP、HMAC密钥等易于破解的硬编码密码。
结论
通过使用 detect-secrets 软件包来扫描您的代码库,您可以查找和修复所谓的“硬编码”密码和其他敏感信息。这是保护您的代码库和应用程序不被黑客攻击的重要一步。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5eedc8a6b5cbfe1ea061231b