6

一般来说,urllib2 似乎不支持带有代理身份验证的 HTTPS,更不支持 NTLM 身份验证。任何人都知道是否有针对具有 NTLM 身份验证的代理上的 HTTPS 的补丁。

问候,

洛朗

4

3 回答 3

6

迟回复。Urllib2不支持 NTLM 代理,但pycurl 支持。摘抄:

self._connection = pycurl.Curl()
self._connection.setopt(pycurl.PROXY, PROXY_HOST)
self._connection.setopt(pycurl.PROXYPORT, PROXY_PORT)
self._connection.setopt(pycurl.PROXYUSERPWD,
                        "%s:%s" % (PROXY_USER, PROXY_PASS))
...
于 2009-11-24T21:56:57.413 回答
2

http://code.google.com/p/python-ntlm/

我从未尝试过使用 HTTPS,但我认为它应该可以工作。

编辑:如果您使用 SSL 隧道,代理身份验证是个坏主意。

当 SSL 建立隧道时,使用基于 HTTPS 的基本身份验证的代理不安全。您的密码将以明文(Base64 编码)形式发送到代理。很多人认为密码将在 SSL 中加密。在这种情况下,情况并非如此。

几乎不可能支持其他加密或散列机制,如 Digest/NTLM,因为它们都需要协商(多次交换),而 CONNECT 协议中没有定义。这种协商发生在 HTTP 连接的带外。在代理/浏览器中也很难实现。

如果这是一个企业代理,IP ACL 是唯一安全的解决方案。

于 2009-09-26T15:49:47.060 回答
1

很好的配方(用于 HTTPS w/proxy)和讨论here,应该可以将它与 @ZZ 已经建议的 python-nltm 代码融合在一起。

于 2009-09-26T17:42:37.347 回答