当你使用新的npm 6执行npm install时,我收到一条消息,告诉我我有一些漏洞:[!]发现75个漏洞[审核了4867个软件包]严重度:66低|4例中度|5高运行npm audit以获取更多详细信息我运行了npm audit,但得到了一个截断的漏洞列表。如何检查仅高漏洞列表?谢谢
npm install
npm audit
bwleehnv1#
这不是你想要的答案,但它会做同样的事情:
npm audit | grep -B 1 -A 10 High
字符串
ffscu2ro2#
这一个为我工作:◎片名Show High Only
npm audit | grep -E "(High)" -B3 -A10
同时显示重要和重要问题
npm audit | grep -E "(High | Critical)" -B3 -A10
型请看issue讨论,其中提出了此解决方案。
b4lqfgs43#
如果你想在Powershell中实现它,只需使用以下命令(改编自@stayingcool的答案):◎片名Show High Only
npm audit | Select-String -Pattern "High" -Context 0,10
显示高和关键
npm audit | Select-String -Pattern "(High | Critical)" -Context 0,10
型
ckx4rj1h4#
它不那么漂亮,但你可以做:
npm audit --parseable | grep high
字符串另外一个缺点是,任何包含"high"的包/问题元数据也将被打印。
"high"
uxh89sit5#
--audit-level=high标志不会改变npm audit的输出。我把这个发送到html用于报告目的,所以希望进一步清理它:
--audit-level=high
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
型或者作为一个吸引人的一行程序(lol),它也删除了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
s8vozzvw6#
只是为了计算高(S):
npm audit | grep 'High' | wc -l | rev
eeq64g8w7#
将这一行放入您的审计脚本:
"audit": "level=$(npm audit --parseable | grep -E 'high|critical' | wc -l | rev); [ $level == 0 ] && exit 0"
字符串这段代码检查npm audit的输出。如果没有高或严重的漏洞,该进程将不会退出错误。
im9ewurl8#
为了合并其他一些答案,以下内容对我来说很好地解决了npm audit的输出格式更改,在Ubuntu 22.04.3上测试了npm v6,v8和v10,在Windows 11上测试了npm v10 Git Bash:
npm audit --color=always | grep -i -E "(high|critical)" -B2 -A10
字符串感谢以下海报:
lymgl2op9#
这个包可能是你正在寻找的:https://www.npmjs.com/package/audit-filter它可以让你通过咨询号码过滤,这比通过级别过滤更好。
$ cat .nsprc { "exceptions": [ "https://npmjs.com/advisories/532", "https://npmjs.com/advisories/577" ] }
字符串再加上审计级别的npm配置,你就大功告成了。
9条答案
按热度按时间bwleehnv1#
这不是你想要的答案,但它会做同样的事情:
字符串
ffscu2ro2#
这一个为我工作:
◎片名Show High Only
字符串
同时显示重要和重要问题
型
请看issue讨论,其中提出了此解决方案。
b4lqfgs43#
如果你想在Powershell中实现它,只需使用以下命令(改编自@stayingcool的答案):
◎片名Show High Only
字符串
显示高和关键
型
ckx4rj1h4#
它不那么漂亮,但你可以做:
字符串
另外一个缺点是,任何包含
"high"
的包/问题元数据也将被打印。uxh89sit5#
--audit-level=high
标志不会改变npm audit的输出。我把这个发送到html用于报告目的,所以希望进一步清理它:
字符串
但是这会失去标题,以及底部的“发现的漏洞”。我发现最简单的方法就是运行几次npm audit,并将我需要的位附加到文件中。
最后的结果是这样的:
型
或者作为一个吸引人的一行程序(lol),它也删除了temp.txt文件:
型
这条线很难看,但在一堆不同的repos中工作得很好,只要你只需要终端中的输出。
当输出到文件时,npm audit包含ansi颜色代码,无法关闭。这对我的报告来说是个问题!Sed可以用来删除它们:
型
s8vozzvw6#
只是为了计算高(S):
字符串
eeq64g8w7#
将这一行放入您的审计脚本:
字符串
这段代码检查
npm audit
的输出。如果没有高或严重的漏洞,该进程将不会退出错误。im9ewurl8#
为了合并其他一些答案,以下内容对我来说很好地解决了npm audit的输出格式更改,在Ubuntu 22.04.3上测试了npm v6,v8和v10,在Windows 11上测试了npm v10 Git Bash:
字符串
感谢以下海报:
lymgl2op9#
这个包可能是你正在寻找的:
https://www.npmjs.com/package/audit-filter
它可以让你通过咨询号码过滤,这比通过级别过滤更好。
字符串
再加上审计级别的npm配置,你就大功告成了。