當您安裝的軟體包或其相依性中偵測到安全漏洞時,Github 會定期向您發送警報。我曾經嘗試讓 dependentabot 為我修復它們。然而,有一半的時間我無法合併為我產生的 PR。結果,違規行為就被赤裸裸地處理了,這可不好。就我而言,我使用 pnpm,我想它與 npm 相同。
我今天看到了 Niraj Chauhan 的這篇文章,它讓我了解如何使用終端來解決這些問題。
步驟:
在路徑部分,您應該看到導致此問題的原因。就我而言,它似乎是“嵌套依賴項”(依賴項的依賴項)。
您可以執行 pnpm Why NAME_OF_THE_EXTENSION 來確認上述內容。就我而言,當我在第一個漏洞上運行它時,我得到了這個:pnpm Why netmask
您可以嘗試運行 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 檔案中這樣做:
編輯 25/10:根據此 Stackoverflow 線程,Github dependentabot 和 pnpm 審核來源都來自同一資料庫,因此您不會錯過漏洞,而是以這種方式修復問題,而不是使用 dependentabot 工作流程。還有這篇文章。
以上是修正 JS 專案中的套件安全漏洞的步驟的詳細內容。更多資訊請關注PHP中文網其他相關文章!