CookieJar in Python zu einer Webseite einzuloggen von „Google App Engine“. Was ist hier falsch?
-
24-09-2019 - |
Frage
Ich habe versucht, einen Python-Code zu finden, die auf yahoo.com von "Google App Engine" . hier (klicken Sie hier, um zu sehen diese Seite) ich diesen Code gegeben wurde:
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()
Der Autor dieses Skript sah in HTML-Skript von Yahoo Login-Formular und kam mit diesem Skript auf.
Die Login-Formular enthält zwei Felder, einen für Benutzer Yahoo! ID und ein weiteres ist für Passwort der Nutzer. Hier ist, wie HTML-Code dieser Seite für diese beiden Felder sieht aus wie:
Benutzer-ID-Feld:
<input type="text" maxlength="96" class="yreg_ipt" size="17" value="" id="username" name="login">
Feld Kennwort:
<input type="password" maxlength="64" class="yreg_ipt" size="17" value="" id="passwd" name="passwd">
Allerdings, wenn ich diesen Code zu Google App Engine ich hochgeladen habe entdeckt, dass diese Log-in-Form zu mir kommt immer wieder, die, wie ich annehmen, bedeutet, dass die Protokollierung-in-Prozess nicht erfolgreich war. Warum ist es so?
Lösung
Sie MD5-Hash senden und nicht glatt Passwort. Auch würden Sie zusammen mit allen Arten von CSRF spielen müssen, um Schutz usw., dass sie umzusetzen. Aussehen:
<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=">
Starten Sie Wireshark und mit ihm spielen. Viel Glück:)
Allerdings, wenn Sie es w / App Engine keep in meinem Kopf verwenden wollen, dass fast sicher w / Check Captcha Herausforderung führen mit Google IP wird. Yahoo könnte auch Ihre User-Agent
blockieren, die permanent von Google festgelegt wird.