npm 是 Node.js 世界中最大的包管理器,几乎每一个 Node.js 的开发者都会使用它来管理自己的项目。nsp 是 npm 内置的一个安全检测工具,可以对项目中的依赖包进行安全扫描,检查项目中是否存在已知的安全漏洞。但是,由于 npm 官方并没有提供美观易读的安全报告,因此本文将介绍一款基于 nsp 的 npm 包 nsp-reporter-owasp,全称 OWASP 自定义 nsp 报告器,其可以允许您根据安全漏洞的严重性、CVSS 评分等参数生成更加直观、易读的安全报告。
nsp-reporter-owasp 的安装
首先,您需要在您的项目中作为开发依赖 (devDependencies) 安装 nsp 和 nsp-reporter-owasp:
$ npm install --save-dev nsp nsp-reporter-owasp
如何生成 OWASP 报告
为了能够使用 nsp 和 nsp-reporter-owasp 生成 OWASP 报告,您需要运行以下命令:
$ nsp check --reporter owasp
该命令将扫描项目中所有的依赖包,同时使用 owasp 报告器生成 OWASP 报告。最终,您将可以在终端中看到类似于以下的结果:
-- -------------------- ---- ------- - --- ----- ---------- ----- -- --------- -------------- - ---------- ---- --------------- ----- ---- -- -------------------------------- ---- ---------- ---- ------------------ -------------- - ---- ------ --- ------- --- - ---------- -------- ---------- - --------------- ------------- -- -----
如果项目中没有发现安全漏洞,将会输出以下结果:
$ nsp check --reporter owasp 🎉 0 vulnerabilities found in 479 packages
如何定制 OWASP 报告中的规则
nsp-reporter-owasp 报告器可以配置以下选项:
display
: 定义报告中的哪些列将被显示,默认值为 "library,version,vulnerability,cvssScore,upgradePath"severityThreshold
: 仅显示与此等级或更高级别的漏洞,可以是 "low", "moderate", "high" 或 "critical"。如果你不希望显示部分漏洞,可以将此选项设置为 "none"。exitOnWarnThreshold
: 定义级别要输出多少个警告后退出。如果设置为'0'
,则不会在警告级别上退出,默认值为 0。
nsp-reporter-owasp 支持在像这样的 .nsp-foorc
或 package.json
文件中定义选项:
{ "nspReporterOwasp": { "display": "library,version,vulnerability,cvssScore", "severityThreshold": "moderate", "exitOnWarnThreshold": "2" } }
总结
在本文中,我们介绍了如何使用 nsp 和 nsp-reporter-owasp 来生成可读性更高的 OWASP 报告。我们还展示了如何配置和在其他应用程序中使用该报告器。希望这篇文章能够帮助更多的人通过增强其安全性,提升他们的 Node.js 项目的质量和可靠性。
附录:示例代码
以下为使用 nsp 和 nsp-reporter-owasp 生成 OWASP 报告的示例代码:
-- -------------------- ---- ------- -- -------------- - ------- ------------- ---------- -------- --------------- - ---------- --- -- ------------------ - ------ --------- --------------------- -------- - -
// 命令行(终端)中运行) $ nsp check --reporter owasp
输出结果:
-- -------------------- ---- ------- -- --------- -------------- - ---------- ---- --------------- ----- ---- ------------- -- --------------- -- -------------- - ---- ------ --- ------- --- - -------------- -------- ---------- - ------- ------ ------- -- ------
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005671d81e8991b448e37cb