目录
正确答案
首页 后端开发 Golang Golang:如何处理 google.golang.org/api 对 golang.org/x/net 的过时依赖项

Golang:如何处理 google.golang.org/api 对 golang.org/x/net 的过时依赖项

Feb 06, 2024 am 08:09 AM

Golang:如何处理 google.golang.org/api 对 golang.org/x/net 的过时依赖项

问题内容

最近 github.com dependabot 抱怨我的项目中的一些依赖项容易受到 dos 的攻击,具有“损坏或有风险的加密算法”,并且存在“不受控制的资源消耗”的错误。

具体来说,它警告我有关 golang.org/x/net 模块的 cve-2022-27664、其他模块的 cve-2022-27191 和 cve-2022-32149。

我所做的是在所有使用的模块上运行“go get -u”。显然,这并没有解决问题。然后我开始用“go graph”寻找模块依赖关系。花了一段时间,这是我找到的依赖顺序:

google.golang.org/[email protected] =>
[email protected] =>
google.golang.org/[email protected] =>
github.com/envoyproxy/[email protected] =>
google.golang.org/[email protected] =>
golang.org/x/[email protected] =>
google.golang.org/[email protected] =>
golang.org/x/[email protected]
登录后复制

这意味着 2023 年 3 月 17 日起的最现代且更新的 google.golang.org/api 软件包会导致对 2018 年起的 golang.org/x/net 的依赖。

我发现其他谷歌软件包对旧网络模块有很多依赖:

cloud.google.com/go/[email protected] golang.org/x/[email protected]
github.com/googleapis/gax-go/[email protected] golang.org/x/[email protected]
[email protected] golang.org/x/[email protected]
golang.org/x/[email protected] golang.org/x/[email protected]
golang.org/x/[email protected] golang.org/x/[email protected]
google.golang.org/[email protected] golang.org/x/[email protected]
google.golang.org/[email protected] golang.org/x/[email protected]
google.golang.org/[email protected] golang.org/x/[email protected]
google.golang.org/[email protected] golang.org/x/[email protected]
golang.org/x/[email protected] golang.org/x/[email protected]
google.golang.org/[email protected] golang.org/x/[email protected]
golang.org/x/[email protected] golang.org/x/[email protected]
golang.org/x/[email protected] golang.org/x/[email protected]
golang.org/x/[email protected] golang.org/x/[email protected]
golang.org/x/[email protected] golang.org/x/[email protected]
google.golang.org/[email protected] golang.org/x/[email protected]
golang.org/x/[email protected] golang.org/x/[email protected]
google.golang.org/[email protected] golang.org/x/[email protected]
golang.org/x/[email protected] golang.org/x/[email protected]
google.golang.org/[email protected] golang.org/x/[email protected]
golang.org/x/[email protected] golang.org/x/[email protected]
google.golang.org/[email protected] golang.org/x/[email protected]
google.golang.org/[email protected] golang.org/x/[email protected]
登录后复制

我检查了 github.com/googleapis/google-api-go-client 存储库并发现了此问题 https://github.com/googleapis/google-api-go-client/issues/1048 我说同样的问题,但后来用户 hashier 说,由于 go list -m all 命令显示最新版本,所以这不是问题。

所以,主要问题是:这是否是一个问题以及为什么?

我只是不知道这里应该修复什么,github dependabot 检查或 google-api-go-client 模块依赖项。


正确答案


是时候回答这个问题了。

当我尝试使用 go mod graph 在单独的草稿存储库中一一检查项目中的所有包时,这些易受攻击的依赖项来自另一个存储库:github.com/go-gorm/postgres

所以,我错误地确定了易受攻击的依赖项来自何处。显然这是由于巨大的依赖关系图造成的:

[0] $ go mod graph | wc
    667    1334   56113
登录后复制

如果有人正在寻找一种可视化项目依赖关系的方法,这里是:

go mod graph | modgv | dot -Tsvg -o graph.svg
登录后复制

回到最初的问题。这是由于 github.com/go-gorm/postgres 使用旧版本的 go 造成的。据我了解,修复它的唯一方法是将 go 版本升级到 1.18。如果版本较低,go mod graph会显示很多易受攻击的包。

以上是Golang:如何处理 google.golang.org/api 对 golang.org/x/net 的过时依赖项的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门文章

仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章

仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章标签

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

Go语言包导入:带下划线和不带下划线的区别是什么? Go语言包导入:带下划线和不带下划线的区别是什么? Mar 03, 2025 pm 05:17 PM

Go语言包导入:带下划线和不带下划线的区别是什么?

如何编写模拟对象和存根以进行测试? 如何编写模拟对象和存根以进行测试? Mar 10, 2025 pm 05:38 PM

如何编写模拟对象和存根以进行测试?

Beego框架中NewFlash()函数如何实现页面间短暂信息传递? Beego框架中NewFlash()函数如何实现页面间短暂信息传递? Mar 03, 2025 pm 05:22 PM

Beego框架中NewFlash()函数如何实现页面间短暂信息传递?

如何使用跟踪工具了解GO应用程序的执行流? 如何使用跟踪工具了解GO应用程序的执行流? Mar 10, 2025 pm 05:36 PM

如何使用跟踪工具了解GO应用程序的执行流?

您如何在GO中编写单元测试? 您如何在GO中编写单元测试? Mar 21, 2025 pm 06:34 PM

您如何在GO中编写单元测试?

Go语言中如何将MySQL查询结果List转换为自定义结构体切片? Go语言中如何将MySQL查询结果List转换为自定义结构体切片? Mar 03, 2025 pm 05:18 PM

Go语言中如何将MySQL查询结果List转换为自定义结构体切片?

如何定义GO中仿制药的自定义类型约束? 如何定义GO中仿制药的自定义类型约束? Mar 10, 2025 pm 03:20 PM

如何定义GO中仿制药的自定义类型约束?

Go语言如何便捷地写入文件? Go语言如何便捷地写入文件? Mar 03, 2025 pm 05:15 PM

Go语言如何便捷地写入文件?

See all articles