Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python urllib2 HTTPS和代理NTLM身份验证_Python_Authentication_Proxy_Https_Ntlm - Fatal编程技术网

Python urllib2 HTTPS和代理NTLM身份验证

Python urllib2 HTTPS和代理NTLM身份验证,python,authentication,proxy,https,ntlm,Python,Authentication,Proxy,Https,Ntlm,urllib2通常不支持带有代理身份验证的HTTPS,更不用说NTLM身份验证了。任何人都知道在代理上是否有HTTPS的补丁,该补丁带有NTLM身份验证 问候, 劳伦特 我从未尝试过使用HTTPS,但我认为它应该有效 编辑:如果您使用SSL隧道,代理身份验证是一个坏主意 当SSL被隧道化时,通过HTTPS使用基本身份验证的代理不安全。您的密码将以明文(Base64编码)形式发送到代理服务器。很多人认为密码将在SSL中加密。在这种情况下不是这样的 几乎不可能支持其他加密或散列机制,如Digest/

urllib2通常不支持带有代理身份验证的HTTPS,更不用说NTLM身份验证了。任何人都知道在代理上是否有HTTPS的补丁,该补丁带有NTLM身份验证

问候,

劳伦特

我从未尝试过使用HTTPS,但我认为它应该有效

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

当SSL被隧道化时,通过HTTPS使用基本身份验证的代理不安全。您的密码将以明文(Base64编码)形式发送到代理服务器。很多人认为密码将在SSL中加密。在这种情况下不是这样的

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


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

好方法(对于HTTPS w/proxy)和讨论,应该可以将其与python nltm代码@ZZ已经建议的结合起来。

延迟回复。Urllib2不支持NTLM代理,但支持。摘录:

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))
...

HTTPS在urllib2中不能与使用身份验证的代理一起使用,因为连接请求似乎没有传递凭据。我希望有人能用NTLM为HTTPS提供一个代理补丁。你说的是HTTPS隧道(代理连接)。那是不可能通过认证的。代理仅获取目标主机/端口,其他所有内容都已加密。可以对隧道施加的唯一安全性是基于IP的ACL。如果代理具有身份验证(例如,基本身份验证),则需要在connect命令中传递凭据:“代理授权:用户名/密码哈希”这是一个隧道,但您仍然需要使用代理进行身份验证。如果代理未进行身份验证,则该方法效果良好。它不适用于基本、摘要或NTLM身份验证。我们可以进行基本身份验证,但我们正在寻求NTLM身份验证方面的帮助。仅供参考,现在还有
urllib2