跳到主要内容

Go 语言的 go get 命令时禁用模块的哈希校验功能

· 阅读需 2 分钟
素明诚
Full stack development

GOSUMDB 环境变量

GOSUMDB 环境变量用于指定用于验证模块内容的 Go checksum database 的服务器。Go 模块系统使用这个数据库来确保模块内容的一致性和安全性,防止模块遭到篡改。

禁用哈希校验

设置 GOSUMDB=off,可以关闭对所有外部模块的校验和数据库查询。这意味着当你使用 go get 下载依赖时,Go 工具链不会尝试验证下载的模块是否与校验和数据库中记录的哈希值相匹配。

这种设置通常用于私有网络或者是对安全要求不高且需要提速的开发环境中。

设置方法

在命令行中设置 GOSUMDB=off 可以通过以下命令实现

go env -w GOSUMDB=off

这个命令会在当前用户的 Go 环境中永久设置 GOSUMDB 的值为 off

提示~

禁用模块哈希校验将降低项目安全性,因为你将无法验证模块的内容是否被篡改。只有在你完全信任你的模块来源,或在内部、隔离的开发环境中使用时,才推荐使用这种方法。

使用场景

在内部或私有的网络环境中,无法访问 Go 的官方 checksum database。

开发过程中需要频繁测试或更新依赖,且对安全性的即时验证要求较低。