74

当您npm install使用新的npm 6执行时, 我收到一条消息,告诉我我有一些漏洞

[!] 发现 75 个漏洞 [审核了 4867 个包]

严重性:66 低 | 4 中等 | 5 高

运行npm audit以获取更多详细信息

我跑了npm audit,但得到了一个截断的漏洞列表。

如何仅检查漏洞列表?

谢谢

4

8 回答 8

51

不是您正在寻找的答案,但它会做同样的事情:

npm audit | grep -B 1 -A 10 High
于 2018-05-13T14:37:35.200 回答
37

这个对我有用:

仅显示高

npm audit | grep -E "(High)" -B3 -A10

显示关键问题和高问题

npm audit | grep -E "(High | Critical)" -B3 -A10

查看提出此解决方案的问题讨论。

于 2019-09-23T06:02:33.960 回答
30

如果您想在 Powershell 中执行此操作,只需使用以下命令(改编自 @stayingcool 的答案):

仅显示高

npm audit | Select-String -Pattern "High" -Context 0,10

显示高和关键

npm audit | Select-String -Pattern "(High | Critical)" -Context 0,10
于 2019-10-14T17:28:48.623 回答
8

编辑:我推荐这个(更好的)答案:https ://stackoverflow.com/a/58056454/88111

它不是那么漂亮,但你可以这样做:

npm audit --parseable | grep high

另一个缺点是任何包含的包/问题元数据"high"也将被打印。

于 2019-10-15T16:50:10.340 回答
2

--audit-level=high标志不会更改 npm audit 的输出。

我将其发送到 html 以用于报告目的,因此希望进一步清理它:

npm audit | grep -E "(High | Critical)" -B3 -A11 --color=always | grep -E '┌|│|├|└' --color=never

但这将失去标题,以及底部的“发现的漏洞”。我发现最简单的方法是运行 npm audit 几次并将我需要的位附加到文件中。

结束了这样的事情:

npm audit | grep '===' --color=never > temp.txt
npm audit | grep -E "(High | Critical)" -B3 -A11 --color=never | grep -E '┌|│|├|└' --color=never >> temp.txt
npm audit | grep -E "(found|scanned packages)" --color=never >> temp.txt
cat temp.txt

或者作为一个吸引人的衬里(大声笑),它也删除了 temp.txt 文件:

npm audit | grep '=== npm audit' --color=never > temp.txt; npm audit | grep -E "(High | Critical)" -B3 -A11 --color=never | grep -E '┌|│|├|└' --color=never >> temp.txt; npm audit | grep -E "(found|scanned packages)" --color=never >> temp.txt; cat temp.txt; rm temp.txt;

这条线很丑,但在一堆不同的 repos 中运行良好,前提是您只需要终端中的输出。

输出到文件时,npm audit 包含无法关闭的 ansi 颜色代码。这对我的报告来说是个问题!Sed 可用于删除它们:

sed -i '' $'s,\x1b\\[[0-9;]*[a-zA-Z],,g' temp.txt
于 2021-01-14T10:49:09.947 回答
0

只是为了计算高点:

npm audit | grep 'High' | wc -l | rev
于 2019-09-04T10:50:20.630 回答
0

将此行放入您的审计脚本中:

"audit": "level=$(npm audit --parseable | grep -E 'high|critical' | wc -l | rev); [ $level == 0 ] && exit 0"

此代码确实检查npm audit. 如果没有严重或严重的漏洞,则该过程不会因错误而退出。

于 2021-06-23T13:44:10.427 回答
-1

这个包可能是你正在寻找的:

https://www.npmjs.com/package/audit-filter

它使您可以按建议编号进行过滤,这比按级别过滤要好。

$ cat .nsprc
{
  "exceptions": [
    "https://npmjs.com/advisories/532",
    "https://npmjs.com/advisories/577"
   ]
}

将其与用于审计级别的 npm config结合起来,您就很成功了。

于 2019-04-16T21:22:46.617 回答