安全

本页面为 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 的最近两个主要版本发布安全修复。

使用模糊测试来测试意外输入

Go 原生模糊测试提供了一种自动化测试,它通过持续地操纵程序的输入来发现错误。从 Go 1.18 开始,Go 在其标准工具链中支持模糊测试。Go 原生模糊测试受到 OSS-Fuzz 的支持。

使用 Go 的加密库保护服务

Go 的加密库旨在帮助开发者构建安全的应用程序。请参阅 crypto 软件包golang.org/x/crypto/ 的文档。