Golang 1.24.0 版本发布包是否过度共享?
Golang 1.24.0 版本发布包是否过度共享? 你好,
我刚在我们的构建工具链中安装了 Go 1.24.0,现在 anchore 对以下文件报出了各种旧漏洞:
/usr/local/go/src/debug/buildinfo/testdata/go117
我注意到在 1.23.6 版本(或更早版本)中并不存在 buildinfo/testdata 这个子目录。
实际上,现在 testdata 子目录似乎到处都出现了,但引起问题的是 go117 这个文件。
我是否可以认为包含 */testdata 子目录是一个打包错误,并删除这个文件夹?
2 回复
作为对此的更新并结束此话题,看起来Anchore已经更新了他们的数据源,现在不再报告漏洞了。
更多关于Golang 1.24.0 版本发布包是否过度共享?的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
这是一个合理的担忧。testdata 目录通常包含 Go 工具链内部测试使用的数据文件,不应包含在面向生产环境的发布包中。从 Go 1.24.0 开始,这些目录被意外包含在了发行版中。
你可以安全地删除这些 testdata 目录,这不会影响 Go 工具链的核心功能(编译、链接、测试等)。以下是一个示例命令,用于在 Linux/macOS 系统上删除 Go 安装路径下的所有 testdata 目录:
# 假设 Go 安装在 /usr/local/go
find /usr/local/go -type d -name "testdata" -exec rm -rf {} +
在 Windows 系统上,你可以使用 PowerShell 命令:
# 假设 Go 安装在 C:\Go
Get-ChildItem -Path C:\Go -Directory -Filter "testdata" -Recurse | Remove-Item -Recurse -Force
请注意,这确实是一个打包问题,Go 团队可能会在后续的补丁版本中修复。目前,手动删除这些目录是解决安全工具误报的有效方法。

