共用方式為


使用 npm 稽核來偵測並修正套件弱點

Azure DevOps Services

npm 稽核命令會執行專案的徹底掃描,找出潛在的安全性弱點,併產生詳細報告,以醒目提示發現任何問題。 進行安全性稽核是識別和解決專案相依性內弱點的重要步驟。 npm 稽核修正命令會自動解決偵測到的弱點,並將不安全的套件版本更新為最新的安全版本。 解決這些弱點對於防止數據遺失、服務中斷和未經授權存取敏感性資訊等潛在問題至關重要。

警告

執行 npm 檢查 會將您在 package.json 中指定的所有套件名稱傳送至公用註冊中心。

在本機執行 npm 稽核

npm audit 可以在本機執行,而不需要向訂閱進行驗證。 這可讓您掃描專案是否有弱點,並收到偵測到的安全性問題及其嚴重性的詳細報告。

如果您想要修復偵測到的弱點,您可以執行 npm audit fix,但您必須使用您的資料流進行驗證,才能這麼做。 此命令會將不安全的套件版本更新為可用的最新安全版本。

當您執行 npm 稽核修正時,它不僅會更新本機專案的 package.jsonpackage-lock.json ,也會將這些變更與相關聯的 Azure Artifacts 摘要同步處理。 新受保護的套件版本將自動在您的饋送中可用。

此同步處理可確保共用相同摘要的其他專案也會受益於這些更新。 它有助於在所有項目中維護一致且安全的套件版本集。

  1. 在您的項目目錄中執行下列命令,以執行 npm 稽核:

    npm audit
    
  2. 如果您要嘗試升級至非易受攻擊的套件版本,請確定您先 連線到摘要 ,然後在您的專案目錄中執行下列命令:

    npm audit fix
    

執行 npm 稽核修正之後,請務必對您的應用程式進行徹底測試,以確認更新並未導入任何重大變更。 如果修正需要重大版本更新,建議檢閱套件的發行說明,以確認任何潛在的相容性問題。 請記住,包含公開漏洞相依性的私有套件會收到弱點警示,但不會透過 npm audit fix 進行修正。

備註

npm 稽核 會在每次執行 npm 安裝時自動執行,但僅適用於公用套件。

在管線中執行 npm 稽核

Azure Pipelines 目前不支持 npm 稽核。 如果您嘗試在管線中使用一般 npm audit 命令,它將會失敗。 請改為使用 --registry 自變數執行 npm 稽核,並提供摘要的來源 URL。

  1. 登入您的 Azure DevOps 組織,然後流覽至您的專案。

  2. 選取 [管線]、選取您的管線,然後選取 [ 編輯 ] 加以修改。

  3. 在您的管線定義中,選擇 + 符號來新增一個任務。

  4. 搜尋 npm 工作,然後選取 [ 新增 ] 將它新增至您的管線。

  5. 輸入任務的 顯示名稱,然後從 命令 下拉功能表中選取 自定義

  6. 將您的自訂命令貼到 [命令和自變數] 文字框中:

    1. 使用下列命令來執行 npm 稽核並掃描套件弱點。 將佔位符替換為您 Feed 的來源 URL:

      audit --registry=<FEED_SOURCE_URL>
      
    2. 如果您想要嘗試升級至非易受攻擊的套件版本,請使用下列命令。 將佔位符取代為饋送的來源 URL:

    audit fix --registry=<FEED_SOURCE_URL>
    

    顯示傳統管線中 npm 稽核工作的螢幕快照。