Ho una pagina Web contenente un modulo di accesso che viene caricato tramite HTTP, ma invia i dati tramite HTTPS.Mechanize invia il modulo di accesso da http a https
Sto usando python-mechanize per accedere a questo sito, ma sembra che i dati vengano inviati tramite HTTP.
Il mio codice è simile a questo:
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()
Quando il modulo viene inviato, il collegamento avviene tramite HTTP e contiene qualcosa come:
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'...
Qualcuno può confermare ed eventualmente inviare un soluzione in modo che il modulo venga inviato tramite HTTPS?
Successivamente modificare:
1) Io sto usando un proxy HTTP per il traffico HTTP/HTTPS (set nell'ambiente - macchina Linux)
2) Ho guardato il traffico con Wireshark e posso confermare che il traffico viene inviato tramite HTTP normale (posso vedere il contenuto del POST e mechanize non invia le stesse richieste al proxy come un browser web - quest'ultimo invia CONNECT login.us.site.com:443, mentre meccanizza solo POST https://login.us.site.com). Tuttavia, non so cosa succede ai dati quando lascia il proxy; forse stabilisce una connessione SSL al sito di destinazione?
il modulo sembra essere presentate tramite HTTPS. – SilentGhost
Per il beneficio dei lettori successivi: - È una cattiva pratica avere una pagina pubblicata su un post http in un URL https. Nella configurazione di default IE (ad esempio) genererà un avviso in questi casi .... Se è sotto il vostro controllo, dovreste servire il modulo dallo stesso nome host e protocollo a cui sarà sottoposto. Ciò fornisce anche all'utente l'icona del lucchetto rassicurante. (È una difesa contro gli attacchi man-in-the-middle: se il modulo è su HTTP, un utente malintenzionato MIM può alterare il modulo e può iniettare javascript per controllare ciò che si invia all'URL HTTPS). – Ben