GitHub 供應鏈安全已支援 Dart 開發者生態

通過 Dart 和 GitHub 團隊的共同努力,自 10 月 7 日起,GitHub 的 Advisory Database (安全諮詢資料庫)、Dependency Graph (依賴項關係圖) 和 Dependabot (依賴更新機器人) 開始支援 Dart 開發者生態,這也意味著 GitHub 為 Dart 和 Flutter 應用的供應鏈安全提供了全面支援:

  • GitHub 的 Advisory Database (安全諮詢資料庫) 為漏洞報告者和項目維護者之間提供了一個協作平台,漏洞報告者和項目維護者可以共同合作,在漏洞被公開之前私密討論並修復漏洞。
  • Dependency Graph (依賴項關係圖) 主要是分析 Dart / Flutter 項目的 pubspec.yaml 和 pubspec.lock 文件來確定項目依賴關係。
  • Dependabot 是 GitHub 收購併免費開放的一個檢測依賴項安全性的工具,一旦你依賴的 Dart package 版本發現新漏洞時,Dependabot 就可以發出通知並自動創建拉取請求 (Pull Request),將 package 版本升級到沒有漏洞的版本。查看過往推文: Dependabot 開始支援 pub package 版本檢測 了解更多。

Dart 產品經理 Michael Thomsen 表示:通過與 GitHub 團隊的合作,Dart 開發者們可以在新的漏洞影響到客戶之前發現和解決問題;GitHub 的高級產品經理 Courtney Claessens 也提到說,在供應鏈安全側全面支援 Dart,不僅是對開源社區、開發者的支援,更能夠幫助數百萬使用 Dart 應用的用戶們。

Dependabot 會檢測 package 的更新並創建拉取請求以請求更新到最新版本

Dependency Graph (依賴項關係圖) 會展示出項目所依賴的其他 package

發布 package 到 pub.dev 的安全最佳實踐

作為 package 開發者或維護者,當你將 package 發布到 pub.dev 的時候,這裡有兩條最佳實踐的建議:

  1. 使用 GitHub 的安全公告功能在你的程式碼倉庫中創建新的安全公告,GitHub 會將這個納入其 Advisory Database (安全諮詢資料庫) 中。
  2. 為你的 GitHub 程式碼倉庫配置安全策略,詳細說明用戶可以用什麼樣的方式報告安全問題。

為發布到 pub.dev 上的 package 創建安全公告 (Ecosystem 選擇 Pub)

上述提到的這些安全策略和功能均已面向所有用戶發布 (私有倉庫也只需要加入一點的額外配置),快去試試吧,保護自己的程式碼安全,刻不容緩。

延伸閱讀