>  기사  >  백엔드 개발  >  Golang: golang.org/x/net에서 google.golang.org/api의 오래된 종속성을 처리하는 방법

Golang: golang.org/x/net에서 google.golang.org/api의 오래된 종속성을 처리하는 방법

WBOY
WBOY앞으로
2024-02-06 08:09:11822검색

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

질문 내용

최근 github.com dependencyabot은 내 프로젝트의 일부 종속성이 DOS 공격에 취약하고 "깨졌거나 위험한 암호화 알고리즘"이 있으며 "통제되지 않는 리소스 소비" 오류가 있다고 불평했습니다.

구체적으로 golang.org/x/net 모듈의 경우 CVE-2022-27664, 기타 모듈의 경우 CVE-2022-27191 및 CVE-2022-32149에 대해 경고했습니다.

내가 한 일은 사용된 모든 모듈에 대해 "go get -u"를 실행하는 것이었습니다. 분명히 이것은 문제를 해결하지 못했습니다. 그런 다음 "go graph"를 사용하여 모듈 종속성을 찾기 시작했습니다. 시간이 좀 걸렸고 제가 찾은 종속성 순서는 다음과 같습니다.

으아악

이는 2023년 3월 17일 현재 가장 현대적이고 업데이트된 google.golang.org/api 软件包会导致对 2018 年起的 golang.org/x/net 종속 항목을 의미합니다.

다른 Google 패키지는 기존 네트워크 모듈에 많은 종속성을 가지고 있는 것으로 나타났습니다.

으아악

github.com/googleapis/google-api-go-client 저장소를 확인한 결과 https://github.com/googleapis/google-api-go-client/issues/1048에서 이 문제를 발견했습니다. 저도 같은 문제가 있었지만 user hashier 说,由于 go list -m all 명령을 실행하면 최신 버전이 표시되므로 문제가 되지 않았습니다.

그래서 주요 질문은 이것이 문제이고 그 이유는 무엇입니까?

여기에서 무엇을 수정해야 할지 모르겠습니다. github dependencyabot 확인 또는 google-api-go-client 모듈 종속성입니다.


정답


이제 이 질문에 답할 시간입니다.

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

그래서 취약한 종속성이 어디서 오는지 잘못 식별했습니다. 분명히 이것은 거대한 의존성 그래프 때문입니다:

으아악

프로젝트 종속성을 시각화하는 방법을 찾고 있다면 다음을 참고하세요.

으아악

원래 질문으로 돌아갑니다. 이는 github.com/go-gorm/postgres 使用旧版本的 go 造成的。据我了解,修复它的唯一方法是将 go 版本升级到 1.18。如果版本较低,go mod graph 취약한 패키지가 많이 표시되기 때문입니다.

위 내용은 Golang: golang.org/x/net에서 google.golang.org/api의 오래된 종속성을 처리하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제