En utilisant CookieJar en Python pour vous connecter à un site Web de « Google App Engine ». Quel est le problème ici?

StackOverflow https://stackoverflow.com/questions/2571450

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?

Était-ce utile?

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.

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