Question

J'ai une page Web contenant un formulaire de connexion qui charge via HTTP, mais il envoie les données via HTTPS.

J'utilise python-mécaniser pour se connecter à ce site, mais il semble que les données sont soumises via HTTP.

est ressemble à mon code de ceci:

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

Lorsque le formulaire est soumis, la connexion se fait via HTTP et contient quelque chose comme:

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

Quelqu'un peut-il confirmer et éventuellement poster une solution afin que le formulaire est transmis via HTTPS?

modifier plus tard:

1) J'utilise un proxy HTTP pour le trafic http / https (défini dans l'environnement - machine Linux)
2) Je l'ai regardé le trafic avec Wireshark et je peux confirmer que le trafic est envoyé via HTTP normal (je peux voir le contenu du POST et mécaniser ne pas envoyer les mêmes demandes au proxy comme un navigateur Web - ce dernier envoie CONNECT login.us.site.com:443, alors que mécaniser seulement https://login.us.site.com ). Cependant, je ne sais pas ce qui se passe aux données qu'il quitte le proxy; peut-être il établit une connexion ssl au site cible?

Était-ce utile?

Autres conseils

mechanize utilise urllib2 en interne et plus tard avait un bug: HTTPS sur (Squid) Proxy échoue . Le bug est corrigé en Python 2.6.3, donc la mise à jour Python devrait résoudre votre problème.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top