安全性

本頁面為 Go 開發者提供提升專案安全性的相關資源。

(另請參閱:Go 開發者安全性最佳實踐。)

尋找並修復已知漏洞

Go 的漏洞偵測旨在為開發者提供低雜訊、可靠的工具,以了解可能影響其專案的已知漏洞。如需概覽,請從此總結與常見問題頁面開始,了解 Go 的漏洞管理架構。若想採用實作方式,請探索下方的工具。

使用 govulncheck 掃描程式碼中的漏洞

開發者可以使用 govulncheck 工具來判斷是否有任何已知漏洞影響其程式碼,並根據實際呼叫了哪些易受攻擊的函式與方法來排列後續處理步驟的優先順序。

從編輯器中偵測漏洞

VS Code Go 擴充功能會檢查第三方相依套件並顯示相關漏洞。

尋找可供建構的 Go 模組

Pkg.go.dev 是一個用於發掘、評估及深入了解 Go 套件與模組的網站。當您在 pkg.go.dev 發掘並評估套件時,如果該版本存在漏洞,您將會在頁面頂端看到橫幅提示。此外,您也可以在版本歷史頁面上查看影響套件各個版本的漏洞

瀏覽漏洞資料庫

Go 漏洞資料庫直接從 Go 套件維護者以及 MITREGitHub 等外部來源收集資料。報告內容由 Go 安全團隊負責策劃與審核。

回報 Go 專案中的安全性錯誤

安全性政策

請參閱安全性政策以獲取關於如何回報 Go 專案漏洞的說明。該頁面也詳細說明了 Go 安全團隊追蹤問題並向大眾公開的流程。請參閱發行歷史記錄以了解過去安全性修復的詳細資訊。根據發行政策,我們針對 Go 的最近兩個主要版本提供安全性修復。

使用模糊測試(Fuzzing)測試預期外的輸入

Go 原生模糊測試提供了一種自動化測試方式,透過持續操作程式輸入來尋找錯誤。自 Go 1.18 起,Go 在其標準工具鏈中支援模糊測試。原生 Go 模糊測試受到 OSS-Fuzz 的支援

使用 Go 的密碼學程式庫保護服務

Go 的密碼學程式庫旨在協助開發者建構安全的應用程式。請參閱 crypto 套件golang.org/x/crypto/ 的相關文件。