У меня есть веб-страница, содержащая форму входа, которая загружается через HTTP, но отправляет данные через HTTPS.
Я использую python-mechanize для входа на этот сайт, но кажется, что данные передаются через HTTP.
Мой код выглядит следующим образом:
import mechanize
b = mechanize.Browser()
b.open('http://site.com')
form = b.forms().next() # the login form is unnamed...
print form.action # prints "https://login.us.site.com"
form['user'] = "guest"
form['pass'] = "guest"
b.form = form
b.submit()
Когда форма отправляется, соединение выполняется через HTTP и содержит что-то вроде:
send: 'POST https://login.us.site.com/ HTTP/1.1\r\nAccept-Encoding: identity\r\nContent-Length: 180\r\nHost: login.us.site.com\r\nContent-Type: application/x-www-form-urlencoded\r\n\r\n'...
Может ли кто-нибудь подтвердить это и в конечном итоге опубликовать решение, чтобы форма была отправлена через HTTPS?
Далее отредактируйте:
1) Я использую HTTP-прокси для трафика http/https (установленного в среде - Linux-машина)
2) Я наблюдал за трафиком с Wireshark, и я могу подтвердить, что трафик отправляется через обычный HTTP (я вижу, что содержимое POST и механизация не отправляют те же запросы прокси в качестве веб-браузера - последний отправляет CONNECT login.us.site.com:443, а механизировать только POST https://login.us.site.com). Однако я не знаю, что происходит с данными, поскольку он оставляет прокси; возможно, он устанавливает соединение ssl с целевым сайтом?