首頁  >  文章  >  web前端  >  修正 JS 專案中的套件安全漏洞的步驟

修正 JS 專案中的套件安全漏洞的步驟

Linda Hamilton
Linda Hamilton原創
2024-10-26 07:51:03204瀏覽

當您安裝的軟體包或其相依性中偵測到安全漏洞時,Github 會定期向您發送警報。我曾經嘗試讓 dependentabot 為我修復它們。然而,有一半的時間我無法合併為我產生的 PR。結果,違規行為就被赤裸裸地處理了,這可不好。就我而言,我使用 pnpm,我想它與 npm 相同。

我今天看到了 Niraj Chauhan 的這篇文章,它讓我了解如何使用終端來解決這些問題。

步驟:

  • 您從 Github 收到 dependentabot 警報:

Steps to fix package security vulnerabilities in your JS project

  • 我知道,上面螢幕截圖中的套件名稱與文章的其餘部分不符。但這是關於步驟的,你明白了。
  • 導航到電腦中的項目並執行 pnpmaudit。您應該會看到有關漏洞的詳細資訊:

Steps to fix package security vulnerabilities in your JS project

  • 在路徑部分,您應該看到導致此問題的原因。就我而言,它似乎是“嵌套依賴項”(依賴項的依賴項)。

  • 您可以執行 pnpm Why NAME_OF_THE_EXTENSION 來確認上述內容。就我而言,當我在第一個漏洞上運行它時,我得到了這個:pnpm Why netmask

Steps to fix package security vulnerabilities in your JS project

  • 您可以嘗試運行 pnpmauditfix,但它對我不起作用。

  • 開啟 package.json 並更新導致此問題的套件版本 - 在我的例子中為 mailgun-js。您可以執行 pnpm view NAME_OF_THE_PACKAGE versions 查看所有版本,或執行 pnpm info NAME_PACKAGE version 以了解最新的穩定版本。

如果不同,請使用您需要的版本編輯 package.json 文件,然後再次執行 pnpm i。之後,再次執行 pnpmaudit 以確認漏洞已消失。如果它仍然存在,請重新開始或繼續閱讀。

  • 就我而言,我安裝的是最新的穩定版本,所以我需要採取另一種方法。

  • 我們可以強制 pnpm 安裝特定版本的巢狀依賴項。 pnpm 文件在這裡,您可以在 package.json 檔案中這樣做:

Steps to fix package security vulnerabilities in your JS project

  • 我嘗試覆蓋的版本出現錯誤,因此我在 package.json 檔案中寫入了最新版本:

Steps to fix package security vulnerabilities in your JS project

Steps to fix package security vulnerabilities in your JS project

  • 執行 pnpm i 和 happy days,該軟體包的漏洞不再存在。

編輯 25/10:根據此 Stackoverflow 線程,Github dependentabot 和 pnpm 審核來源都來自同一資料庫,因此您不會錯過漏洞,而是以這種方式修復問題,而不是使用 dependentabot 工作流程。還有這篇文章。

以上是修正 JS 專案中的套件安全漏洞的步驟的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn