Maison  >  Article  >  développement back-end  >  Golang : Comment gérer la dépendance obsolète de google.golang.org/api sur golang.org/x/net

Golang : Comment gérer la dépendance obsolète de google.golang.org/api sur golang.org/x/net

WBOY
WBOYavant
2024-02-06 08:09:11822parcourir

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

Contenu de la question

Récemment, github.com dependabot s'est plaint que certaines dépendances de mon projet sont vulnérables aux attaques DOS, ont des "algorithmes de chiffrement cassés ou risqués" et ont une erreur de "consommation de ressources incontrôlée".

Plus précisément, il m'a averti de CVE-2022-27664 pour le module golang.org/x/net, CVE-2022-27191 et CVE-2022-32149 pour les autres modules.

Ce que j'ai fait, c'est d'exécuter "go get -u" sur tous les modules utilisés. Évidemment, cela n’a pas résolu le problème. Ensuite, j'ai commencé à utiliser "go graph" pour rechercher les dépendances des modules. Cela a pris du temps et voici l'ordre des dépendances que j'ai trouvé :

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]

Cela signifie les dépendances google.golang.org/api 软件包会导致对 2018 年起的 golang.org/x/net les plus modernes et mises à jour au 17 mars 2023.

J'ai trouvé que d'autres packages Google ont beaucoup de dépendances sur l'ancien module réseau :

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]

J'ai vérifié le référentiel github.com/googleapis/google-api-go-client et trouvé ce problème https://github.com/googleapis/google-api-go-client/issues/1048 J'ai eu le même problème, mais la commande user hashier 说,由于 go list -m all a affiché la dernière version, donc ce n'était pas le problème.

Donc, la question principale est : est-ce un problème et pourquoi ?

Je ne sais tout simplement pas ce qui devrait être corrigé ici, la vérification du github dependabot ou la dépendance du module google-api-go-client.


Bonne réponse


Il est temps de répondre à cette question.

Quand j'essaie d'utiliser go mod graph 在单独的草稿存储库中一一检查项目中的所有包时,这些易受攻击的依赖项来自另一个存储库:github.com/go-gorm/postgres.

J'ai donc mal identifié d'où venait la dépendance vulnérable. Apparemment, cela est dû à l'énorme graphique de dépendance :

[0] $ go mod graph | wc
    667    1334   56113

Si quelqu'un cherche un moyen de visualiser les dépendances d'un projet, le voici :

go mod graph | modgv | dot -Tsvg -o graph.svg

Retour à la question initiale. Cela est dû au fait que github.com/go-gorm/postgres 使用旧版本的 go 造成的。据我了解,修复它的唯一方法是将 go 版本升级到 1.18。如果版本较低,go mod graph affiche de nombreux paquets vulnérables.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer