安全
本页面为 Go 开发者提供资源,以提高其项目的安全性。
(另请参阅:Go 开发者安全最佳实践。)
发现并修复已知漏洞
Go 的漏洞检测旨在为开发者提供低干扰、可靠的工具,以了解可能影响其项目的已知漏洞。有关概述,请从关于 Go 漏洞管理架构的摘要和常见问题解答页面开始。如需实践方法,请探索以下工具。
使用 govulncheck 扫描代码漏洞
开发者可以使用 govulncheck 工具来确定是否有任何已知漏洞影响其代码,并根据实际调用的易受攻击函数和方法来确定下一步的优先级。
在您的编辑器中检测漏洞
VS Code Go 扩展程序会检查第三方依赖,并提示相关的漏洞。
查找可用于构建的 Go 模块
Pkg.go.dev 是一个用于发现、评估和深入了解 Go 软件包和模块的网站。在 pkg.go.dev 上发现和评估软件包时,如果该版本存在漏洞,您将在页面顶部看到一个横幅。此外,您还可以在版本历史页面上查看影响每个软件包版本的漏洞。
浏览漏洞数据库
Go 漏洞数据库直接从 Go 软件包维护者以及外部来源(如 MITRE 和 GitHub)收集数据。报告由 Go 安全团队进行整理。
报告 Go 项目中的安全漏洞
安全政策
请查阅安全政策,了解如何报告 Go 项目中的漏洞。该页面还详细说明了 Go 安全团队跟踪问题并向公众披露的过程。有关过去安全修复的详细信息,请参阅发布历史。根据发布政策,我们会为 Go 的最近两个主要版本发布安全修复。
使用模糊测试来测试意外输入
Go 原生模糊测试提供了一种自动化测试,它通过持续地操纵程序的输入来发现错误。从 Go 1.18 开始,Go 在其标准工具链中支持模糊测试。Go 原生模糊测试受到 OSS-Fuzz 的支持。
使用 Go 的加密库保护服务
Go 的加密库旨在帮助开发者构建安全的应用程序。请参阅 crypto 软件包和 golang.org/x/crypto/ 的文档。