私有存储库是否缓存在proxy.golang.org中?

私有存储库是否缓存在proxy.golang.org中?,go,privacy-policy,Go,Privacy Policy,从go 1.13开始,go模块用于缓存存储库。考虑到在GITHUBCOM/IHTKASS/库中有一个私有存储库作为GO模块,而我在另一个本地GO代码SOR.To中导入了模块。当我使用GIT_TERMINAL_PROMPT=1构建本地代码时,go使用我的登录凭据为本地存储库构建sort.go。在这种情况下,go是否在proxy.golang.com中缓存私有存储库?当其他人导入相同的私有包并使用有效凭据访问该包时,private repo中的包是否从proxy.golang.com提供,并仅将身份

从go 1.13开始,go模块用于缓存存储库。考虑到在GITHUBCOM/IHTKASS/库中有一个私有存储库作为GO模块,而我在另一个本地GO代码SOR.To中导入了模块。当我使用GIT_TERMINAL_PROMPT=1构建本地代码时,go使用我的登录凭据为本地存储库构建sort.go。在这种情况下,go是否在proxy.golang.com中缓存私有存储库?当其他人导入相同的私有包并使用有效凭据访问该包时,private repo中的包是否从proxy.golang.com提供,并仅将身份验证转发到github.com? 我的确切问题是

go in是否在代理服务器中保留私有回购代码

发件人:

如果我没有设置GOPRIVATE并从这些服务请求一个私有模块,会有什么泄漏? 代理和校验和数据库协议仅向远程服务器发送模块路径和版本。如果您请求一个私有模块,镜像会像任何Go用户一样尝试下载它,并以同样的方式失败。有关失败请求的信息不会发布到任何位置。请求的唯一跟踪将在内部日志中,这些日志由隐私策略管理

与GoPrivate一起工作,如中所述

GOPRIVATE环境变量控制go命令认为是私有的、不能公开使用的模块,因此不应使用代理或校验和数据库。该变量是Go路径语法中以逗号分隔的全局模式列表。模块路径前缀的匹配。比如说,

GOPRIVATE=*.corp.example.com,rsc.io/private

使go命令将路径前缀与任一模式匹配的任何模块(包括git.corp.example.com/xyzzy、rsc.io/private和rsc.io/private/qux)视为专用模块

总而言之:如果它是一个私有模块,代理服务将尝试访问它,并且将失败。我假设Go然后会退回直接访问它,完全绕过代理。要防止这种往返,请将您的私有存储库添加到GOPRIVATE,如果您仍然担心它,请使用wireshark之类的工具来确保您的私有模块可以直接访问。

来自:

如果我没有设置GOPRIVATE并从这些服务请求一个私有模块,会有什么泄漏? 代理和校验和数据库协议仅向远程服务器发送模块路径和版本。如果您请求一个私有模块,镜像会像任何Go用户一样尝试下载它,并以同样的方式失败。有关失败请求的信息不会发布到任何位置。请求的唯一跟踪将在内部日志中,这些日志由隐私策略管理

与GoPrivate一起工作,如中所述

GOPRIVATE环境变量控制go命令认为是私有的、不能公开使用的模块,因此不应使用代理或校验和数据库。该变量是Go路径语法中以逗号分隔的全局模式列表。模块路径前缀的匹配。比如说,

GOPRIVATE=*.corp.example.com,rsc.io/private

使go命令将路径前缀与任一模式匹配的任何模块(包括git.corp.example.com/xyzzy、rsc.io/private和rsc.io/private/qux)视为专用模块


总而言之:如果它是一个私有模块,代理服务将尝试访问它,并且将失败。我假设Go然后会退回直接访问它,完全绕过代理。要防止这种往返,请将您的私有存储库添加到GOPRIVATE,如果您仍然担心它,使用wireshark之类的工具来双重确保您的私有模块可以直接访问。

如果goproxy.golang.org可以捕获代理从未看到的私有git凭据,这将是一个明显的安全漏洞。它不需要捕获我的意思是将凭据存储在proxy.golang.org中。当从私有存储库请求包时,它可以转发或使用凭据。可能是为了提高效率,它可以使用git进行身份验证,并从代理服务器提供内容。git不会将您的私钥转发到go代理服务器。即使git要与代理通信,PKI也不是这样工作的。git不与代理通信。它既不使用也不理解GOPROXY协议。如果您将用户名和密码提供给git,而git应该使用PKI,那么git将获取包,而不是go工具。代理协议如下所述。该协议不提供传输凭据的方法。因此,proxy.golang.org无法访问私有存储库,因此不会缓存它们。如果goproxy.golang.org能够捕获代理从未见过的私有git凭据,这将是一个明显的安全漏洞。它不需要捕获我的意思是将凭据存储在proxy.golang.org中。它可以转发或使用凭证
从专用存储库请求包时。可能是为了提高效率,它可以使用git进行身份验证,并从代理服务器提供内容。git不会将您的私钥转发到go代理服务器。即使git要与代理通信,PKI也不是这样工作的。git不与代理通信。它既不使用也不理解GOPROXY协议。如果您将用户名和密码提供给git,而git应该使用PKI,那么git将获取包,而不是go工具。代理协议如下所述。该协议不提供传输凭据的方法。因此,proxy.golang.org无法访问私有存储库,因此不会缓存它们。