为何 npm install 的时候会显示严重漏洞

前言

当咱们在 npm install 安装项目依赖的时候,常常看到下图提示的漏洞警告。node

分析问题

咱们看上图的提示说可使用 npm audit fix 来解决问题,那么 npm audit 究竟是干什么的呢?为何能够经过 npm audit fix 能够解决问题。让咱们赶忙去 npm 的官网去查看一波。npm

官网介绍:json

npm audit 容许开发人员分析复杂的代码,并查明特定的漏洞和缺陷。bash

npm audit fix 检测项目依赖中的漏洞并自动安装须要更新的有漏洞的依赖,而没必要再本身进行跟踪和修复。ui

固然还有其余的一些命令:spa

# 只更新 package-lock.json, 不更新 node_modules
npm audit fix --package-lock-only

# 不更新开发依赖即 devDependencies
npm audit fix --only=prod

# 更新到最新的依赖, 而不是仅仅更新到兼容的依赖
npm audit fix --force

# 空运行一次审核修复,了解修复的做用, 而且以 json 的格式输出结果
npm audit fix --dry-run --json
复制代码

还有一些命令请自行查看文档code

那么咱们知道了它是经过分析 package-lock.json 文件,继而扫描咱们的包还分析是否包含漏洞的,那么有没有办法不让他扫描呢?cdn

解决问题

找到问题后,个人第一反应是能够不能够经过配置关闭这个分析功能呢(大佬第一反应多是怎么解决)。blog

经过查看文档咱们发现 npm audit 是能够经过配置来进行关闭的。那么咱们首先来看一下咱们的配置都有哪些,是经过哪一个配置来管理分析功能的。ci

# 执行下面的命令输出咱们的 npm config
npm config ls -l
复制代码

能够看到会输出不少默认的配置,审计分析功能就是由 audit = true 这个属性控制的。

咱们还能够看到 audit-level = "low" 来控制漏洞的危险等级。

那么咱们就能够经过修改这些配置来到达关闭审计分析的功能。

# 将 audit 设置成 false 关闭分析功能
npm set audit false

# 设置分析漏洞危险等级,有4个选项: 'low(低)', 'moderate(中等)', 'high(高危)', 'critical(紧要)'
npm set audit-level high
复制代码

好了,世界清静了,不再会出现这些漏洞报告了~~~~

然而有的小伙伴就会担忧,个人项目有了漏洞,真的被攻击了(虽然我认为概率很小)怎么办?

那就只能老老实实的执行 npm audit fix 去修复了。

有的小伙伴又会说我执行完仍是没有修复,那是什么缘由呢?

为何执行 npm audit fix 后仍是没有修复

那是由于不是全部依赖均可以经过 npm 命令来更新解决漏洞。

好比有些包是 node-gyp 的第三方依赖包,这些不能经过 npm 命令来修改的,只能本身手动修复。

node_modules > node_gyp > package.json 中找到要更新的包,手动修改 package.json 中包的版本,修改到最新版本。而后运行 npm audit fix 便可。

相关文章
相关标签/搜索