باستخدام CookieJar في Python لتسجيل الدخول إلى موقع ويب من "Google App Engine". ما هو الخطأ هنا؟

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

سؤال

لقد كنت أحاول العثور على رمز Python الذي سيقوم بتسجيل الدخول إلى مربع البريد الخاص بي على Yahoo.com "محرك تطبيقات جوجل" . هنا (انقر هنا لرؤية تلك الصفحة) أعطيت هذا الرمز:

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()

نظر مؤلف هذا البرنامج النصي في البرنامج النصي HTML من نموذج تسجيل الدخول إلى Yahooوتوصل إلى هذا البرنامج النصي.

يحتوي نموذج تسجيل الدخول هذا على حقلين ، أحدهما للمستخدمين Yahoo! المعرف والآخر هو كلمة مرور المستخدمين. فيما يلي كيف يشبه رمز HTML في تلك الصفحة لكلا هذين الحقلين:

حقل معرف المستخدم:

<input type="text" maxlength="96" class="yreg_ipt" size="17" value="" id="username" name="login">

حقل كلمة المرور:

<input type="password" maxlength="64" class="yreg_ipt" size="17" value="" id="passwd" name="passwd">

ومع ذلك ، عندما قمت بتحميل هذا الرمز إلى Google App Engine ، اكتشفت أن نموذج تسجيل الدخول هذا يستمر في العودة إلي ، وهو ما أفترض أن عملية التسجيل لم تنجح. لماذا هو كذلك؟

هل كانت مفيدة؟

المحلول

ترسل تجزئة MD5 وليس كلمة مرور عادي. كما عليك أن تلعب مع جميع أنواع حماية CSRF وما إلى ذلك. بحث:

            <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="> 

إطلاق wireshark واللعب معها. حظا طيبا وفقك الله :)

ومع ذلك ، إذا كنت تنوي استخدامه مع محرك التطبيق ، فاستمر في ذهني أن استخدام Google IP سيؤدي بالتأكيد إلى تحدي Captcha. كما قد يمنع Yahoo User-Agent يتم تعيينها بشكل دائم بواسطة Google.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top