我想知道当 url 指向https://站点但这个不支持 SSL 加密时,以下 Python 代码是否容易受到端到端窃听攻击。
为什么我有疑问?因为Mechanize内部使用 urllib2 但HTTPS 请求不会对 urllib2 中的服务器证书进行任何验证
另外,我不知道如何验证我们是否真的在使用带有 Urllib2/Mechanize的https或http连接。AFAIK Mechanize 表现为浏览器,所以我不知道当服务器不支持 SSL 时它是否回退到http,或者它是否执行不安全的https实现。
如何检查我是否在未加密的情况下退出 Tor 电路?
编码:
import socks
import socket
def create_connection(address, timeout=None, source_address=None):
sock = socks.socksocket()
sock.connect(address)
return sock
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "127.0.0.1", 9050)
# patch the socket module
socket.socket = socks.socksocket
socket.create_connection = create_connection
import urllib2
print "urllib2.urlopen(): ",urllib2.urlopen('https://icanhazip.com').read()
import mechanize
from mechanize import Browser
br = Browser()
print "Mechanize Browser.open(): ", br.open('https://icanhazip.com').read()
print "Mechanize Browser.open(): ", br.open('https://check.torproject.org/').read()