Pregunta

Tengo una página web que contiene un formulario de inicio de sesión que se carga a través de HTTP, pero envía los datos a través de HTTPS.

Estoy usando Python-Mechanize para iniciar sesión en este sitio, pero parece que los datos se envían a través de HTTP.

Mi código se ve así:

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

Cuando se envía el formulario, la conexión se realiza a través de HTTP y contiene algo como:

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

¿Alguien puede confirmar esto y eventualmente publicar una solución para que el formulario se envíe a través de HTTPS?

Luego editar:

1) Estoy usando un proxy HTTP para el tráfico HTTP/HTTPS (establecido en el entorno - Linux Machine)
2) He visto el tráfico con Wireshark y puedo confirmar que el tráfico se envía a través de HTTP normal (puedo ver el contenido de la publicación y la mecanización no envía las mismas solicitudes al proxy que un browser web: este último envía enviado Conecte login.us.site.com:443, mientras mecanice solo publicaciones https://login.us.site.com). Sin embargo, no sé qué sucede con los datos, ya que deja el proxy; ¿Quizás establece una conexión SSL con el sitio de destino?

Otros consejos

mechanize usos urllib2 Internamente y el posterior tenía un error: HTTPS Over (Squid) proxy falla. El error se soluciona en Python 2.6.3, por lo que actualizar Python debería resolver su problema.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top