URL がhttps://サイトを指しているが、これは SSL 暗号化をサポートしていない場合、次の Python コードがエンドツーエンドの盗聴攻撃に対して脆弱かどうかを知りたいです。
なぜ私は疑わしいのですか?Mechanizeは内部的に urllib2 を使用しますが、HTTPS リクエストは urllib2 でサーバーの証明書の検証を行わないためです。
さらに、Urllib2/Mechanize で実際にhttpsまたはhttp接続を使用しているかどうかを確認する方法がわかりません。私の知る限り、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()