En utilisant CookieJar en Python pour vous connecter à un site Web de « Google App Engine ». Quel est le problème ici?
-
24-09-2019 - |
Question
Je l'ai essayé de trouver un code python qui se connecter à ma boîte mail sur yahoo.com "Google App Engine" . ici (cliquez ici pour voir cette page) m'a donné ce code:
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'auteur de ce script a regardé dans le script HTML du formulaire de connexion yahoo et est venu avec ce script.
Ce formulaire de connexion contient deux champs, l'un pour des utilisateurs Yahoo! ID et un autre est pour le mot de passe des utilisateurs. Voici comment le code HTML de cette page pour ces deux champs ressemble à:
champ ID utilisateur:
<input type="text" maxlength="96" class="yreg_ipt" size="17" value="" id="username" name="login">
champ Mot de passe:
<input type="password" maxlength="64" class="yreg_ipt" size="17" value="" id="passwd" name="passwd">
Cependant, quand je téléchargé ce code Google App Engine J'ai découvert que cette forme log-in revient sans cesse à moi, ce qui, je suppose, signifie que processus d'enregistrement en n'a pas réussi. Pourquoi est-il?
La solution
Vous envoyez hachage MD5 et non le mot de passe simple. vous souhaitez également avoir à jouer avec toutes sortes de protections CSRF etc. qu'ils mise en œuvre. Regardez:
<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=">
Lancer Wireshark et jouer avec lui. Bonne chance:)
Toutefois, si vous avez l'intention de l'utiliser w / App Engine garder à l'esprit que l'utilisation de Google IP sera presque sûrement w / Captcha défi. Yahoo pourrait également bloquer votre User-Agent
qui est fixé en permanence par Google.