爲何 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 便可。

相關文章
相關標籤/搜索