中间代理是否允许在代理身份验证期间添加cookie?

中间代理是否允许在代理身份验证期间添加cookie?,第1张

概述我最近遇到了某个安全设备(BlueCoat),它要求所有连接到Internet的连接必须通过它代理(你好,中间人),因此使用特殊的SSL证书拦截所有流量. 这阻止了Git的正常 *** 作,即使设置了适当的http.proxy和http.sslCAInfo属性以确保SSL连接本身有效. 使用环境变量GIT_CURL_VERBOSE = 1,我们发现当使用git clone时,会发生HTTP 407(需要代 我最近遇到了某个安全设备(BlueCoat),它要求所有连接到Internet的连接必须通过它代理(你好,中间人),因此使用特殊的SSL证书拦截所有流量.

这阻止了Git的正常 *** 作,即使设置了适当的http.proxy和http.sslCAInfo属性以确保SSL连接本身有效.

使用环境变量GIT_CURL_VERBOSE = 1,我们发现当使用git clone时,会发生http 407(需要代理身份验证). Git正确地完成了此身份验证,最后,设备返回带有cookie标头Set-cookie的http 200.

然后Git将连接到目标服务器,但没有cookie,导致http 401.

解决方案是设置git配置选项http.savecookies = true

题:
RFC标准实际上允许中间代理添加cookie吗?

Anthony Rich asked the same question to the http-state mailing list但没有任何回应.他确实注意到了

RFC 2965 http State Management Mechanism,3.5 Caching Proxy Role it says:
ProxIEs MUST NOT introduce Set-cookie2 (cookie) headers of their own
in proxy responses (requests).

然而,superseding RFC 6265根本没有提到这一点.

解决方法 http cookie是一个热点.没有真正的标准; RFC,它的价值,只是试图记录实际的用户代理正在做什么.

在任何情况下,您可能想要读取的RFC是RFC 7235,它指定代理应该发送带有401错误的Proxy-Authenticate头来请求身份验证信息,并且接收此代理的用户代理应该使用代理重试请求 – 包含代理的身份验证信息的授权头.

可以使用一些挑战/响应方法来提供这些信息;最常用的是“基本”(RFC 7617),因为几乎所有说http的东西都实现了它.

IANA维护registry of known HTTP authentication schemes.作为一般规则,他们使用之前命名的http标头,或者注意到它们不合规.没有使用cookie进行身份验证.

是否允许代理添加或更改cookie,我不能说.在这一点上,RFC似乎并不十分清楚.这肯定是出乎意料的行为,特别是对于身份验证. BlueCoat在质量方面有着悠久的历史……

总结

以上是内存溢出为你收集整理的中间代理是否允许在代理身份验证期间添加cookie?全部内容,希望文章能够帮你解决中间代理是否允许在代理身份验证期间添加cookie?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1094896.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存