共用方式為


使用 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 稽核修正收到修正程式。

注意

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

從管線執行 npm 稽核

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

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

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

  3. 從管線定義中,選取 + 要新增工作的符號。

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

  5. 輸入工作的 [顯示名稱],然後從 [命令] 下拉功能表中選取 [自定義]。

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

    1. 使用下列命令來執行 npm 稽核並掃描套件弱點。 將佔位元取代為摘要的來源 URL:

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

    audit fix --registry=<FEED_SOURCE_URL>
    

    A screenshot showing the npm audit task in a classic pipeline.