Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Golang: Cara mengendalikan kebergantungan usang google.golang.org/api pada golang.org/x/net

Golang: Cara mengendalikan kebergantungan usang google.golang.org/api pada golang.org/x/net

WBOY
WBOYke hadapan
2024-02-06 08:09:11862semak imbas

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

Kandungan soalan

Baru-baru ini github.com dependabot mengadu bahawa beberapa kebergantungan dalam projek saya terdedah kepada serangan DOS, mempunyai "algoritma penyulitan yang rosak atau berisiko", dan mempunyai ralat "penggunaan sumber tidak terkawal".

Secara khusus, ia memberi amaran kepada saya tentang CVE-2022-27664 untuk modul golang.org/x/net, CVE-2022-27191 dan CVE-2022-32149 untuk modul lain.

Apa yang saya lakukan ialah menjalankan "go get -u" pada semua modul yang digunakan. Jelas sekali, ini tidak menyelesaikan masalah. Kemudian saya mula menggunakan "go graph" untuk mencari kebergantungan modul. Ia mengambil sedikit masa dan ini ialah susunan kebergantungan yang saya temui:

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]

Ini bermakna tanggungan google.golang.org/api 软件包会导致对 2018 年起的 golang.org/x/net paling moden dan terkini setakat 17 Mac 2023.

Saya mendapati bahawa pakej Google lain mempunyai banyak kebergantungan pada modul rangkaian lama:

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]

Saya menyemak repositori github.com/googleapis/google-api-go-client dan mendapati isu ini https://github.com/googleapis/google-api-go-client/issues/1048 Saya mengalami masalah yang sama, tetapi arahan pengguna hashier 说,由于 go list -m all menunjukkan versi terkini, jadi itu bukan masalahnya.

Jadi, persoalan utama ialah: adakah ini masalah dan mengapa?

Saya tidak tahu apa yang perlu diperbaiki di sini, semakan github dependabot atau pergantungan modul google-api-go-client.


Jawapan Betul


Sudah tiba masanya untuk menjawab soalan ini.

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

Jadi, saya tersilap mengenal pasti dari mana datangnya pergantungan yang terdedah. Nampaknya ini disebabkan oleh graf pergantungan yang besar:

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

Jika sesiapa sedang mencari cara untuk menggambarkan kebergantungan projek, inilah:

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

Berbalik kepada soalan asal. Ini disebabkan oleh github.com/go-gorm/postgres 使用旧版本的 go 造成的。据我了解,修复它的唯一方法是将 go 版本升级到 1.18。如果版本较低,go mod graph menunjukkan banyak pakej yang terdedah.

Atas ialah kandungan terperinci Golang: Cara mengendalikan kebergantungan usang google.golang.org/api pada golang.org/x/net. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam