Utilizzando Cookiejar in Python per accedere a un sito web da “Google App Engine”. Che cosa c'è che non va qui?
-
24-09-2019 - |
Domanda
Ho cercato di trovare un codice python che avrebbe il login per mia casella di posta su yahoo.com da "Google App Engine" . Qui (clicca qui per vedere quella pagina) mi è stato dato questo codice:
import urllib, urllib2, cookielib
url = "https://login.yahoo.com/config/login?"
form_data = {'login' : 'my-login-here', 'passwd' : 'my-password-here'}
jar = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(jar))
form_data = urllib.urlencode(form_data)
# data returned from this pages contains redirection
resp = opener.open(url, form_data)
# yahoo redirects to http://my.yahoo.com, so lets go there instead
resp = opener.open('http://mail.yahoo.com')
print resp.read()
L'autore di questo script guardato nello script HTML di yahoo log-in forma e si avvicinò con questo script.
Questo log-in forma contiene due campi, uno per Yahoo! degli utenti ID e un altro è la password degli utenti. Ecco come il codice HTML di quella pagina sia di quegli sguardi campi come:
campo ID utente:
<input type="text" maxlength="96" class="yreg_ipt" size="17" value="" id="username" name="login">
campo Password:
<input type="password" maxlength="64" class="yreg_ipt" size="17" value="" id="passwd" name="passwd">
Tuttavia, quando ho caricato questo codice per Google App Engine ho scoperto che questo registro-in forma continua a tornare da me, che, suppongo, significa che la registrazione-in processo non è riuscito. Perché è così?
Soluzione
Si invia hash MD5 e la password non semplice. Inoltre ci si deve giocare insieme a tutti i tipi di CSRF protezioni ecc che stanno attuazione. Guardate:
<input type="hidden" name=".tries" value="1">
<input type="hidden" name=".src" value="ym">
<input type="hidden" name=".md5" value="">
<input type="hidden" name=".hash" value="">
<input type="hidden" name=".js" value="">
<input type="hidden" name=".last" value="">
<input type="hidden" name="promo" value="">
<input type="hidden" name=".intl" value="us">
<input type="hidden" name=".bypass" value="">
<input type="hidden" name=".partner" value="">
<input type="hidden" name=".u" value="bd5tdpd5rf2pg">
<input type="hidden" name=".v" value="0">
<input type="hidden" name=".challenge" value="5qUiIPGVFzRZ2BHhvtdGXoehfiOj">
<input type="hidden" name=".yplus" value="">
<input type="hidden" name=".emailCode" value="">
<input type="hidden" name="pkg" value="">
<input type="hidden" name="stepid" value="">
<input type="hidden" name=".ev" value="">
<input type="hidden" name="hasMsgr" value="0">
<input type="hidden" name=".chkP" value="Y">
<input type="hidden" name=".done" value="http://mail.yahoo.com">
<input type="hidden" name=".pd" value="ym_ver=0&c=&ivt=&sg=">
Launch Wireshark e giocare con lui. Buona fortuna:)
Tuttavia, se avete intenzione di usarlo w / App Engine tenere nella mia mente che utilizzando Google IP sarà quasi sicuramente provocare w sfida / Captcha. Anche Yahoo potrebbe bloccare il tuo User-Agent
che viene impostato in modo permanente da parte di Google.