في العديد من الأماكن ، فإن التطبيقات مثل استخدام رموز QR لتسجيل الدخول ، ودفع رمز الاستجابة السريعة ، وحسابات رمز الاستجابة السريعة (لن أتحدث عن الفحل من رمز الاستجابة السريعة هنا ، والاحتيال) ، والتحقق من رمز الاستجابة السريعة ، وتطبيقات ترخيص المساعدين متعددة الطرفي في الزيادة. دعنا نتحدث عن ماهية رمز الاستجابة السريعة. في الواقع ، رمز الاستجابة السريعة هو صورة بالأبيض والأسود للبيانات الثنائية المخزنة. عندما يُطلب من رمز الاستجابة السريعة تسجيل الدخول ، سيقوم الخادم بإنشاء معلومات رمز QR فريدة من نوعها ، والتي سيتم إرسالها إلى العميل وكتابتها إلى صفحة الويب في شكل رمز QR (صورة). ثم سترى أربعة رموز QR مربعة. إذا قمت بعمل جيد ، فيجب أن تكون معلومات رمز الاستجابة السريعة فعالة من الوقت. لن أفكر في هذه الوقت. دعنا نأخذ تسجيل دخول WeChat بسيط كمثال:
دعنا نتحدث عن عملية التفويض بأكملها:
سترسل صفحة ويب العميل باستمرار اتصال HTTPS إلى الخادم ، وبعد إرسال القليل جدًا من البيانات ، سيتم فصل الاتصال. دعنا نلقي نظرة على ملف login1c709c.js في صفحة الويب WeChat:
(الدالة ($ ، _aowin) {_aowin.qrlogin = {} ؛ _aowin.loginlog = "" ؛ var _sbasehost = "" ، _ologinqrcodeimg = document.getElementById ("loginqrcode") ؛ if (document.domain == " "weixin.qq.com" ؛ _odeTActWebMMINTERVAL = SETINTERVAL (function () {if (_aowin.webmm) {clearinterval (_odeTACTWEBMMNINT) ؛ var callback ؛ بينما (callback = _awebmmcallbacks.shift ()) {if (typeof (callback)! = "function" _loginPage (_Aslog) {_aowin.loginlog = loginlog + _aslog + "/n" ؛ _reportnow (text) {_loginPage (text) ؛ ClearInterval (loadQRimgwatchDog) ؛ src: " + img.src +" ، الوقت: " + (تاريخ جديد (). getTime () - loadQrCodeTime) +" MS ") ؛ Date () "https: // login. _img.onload = function () if (! _img.src = _ologinqrcodeimg.src + " encles.callee ، _ntime = 0 ؛ "/cgi-bin/mmwebwx-bin/login؟ uuid =" + _asuuid + "& tip =" + show_tip ، datatype: "script" ، cache: false ، timeout: + () _fnewloginfunc = function () {$ .ajax ({url: _aowin.redirect_uri + "& fun = new" ، // نوع صفحة تسجيل الدخول الجديدة: "get" msg.match (<script> (. WebMM.Model ("الحساب"). SetSkey (Skey [1]) ؛ Return ؛ _reportnow (/cgi-bin/mmwebwx/login ، usud uuid: $ ('. normldesc'). _asuud) ؛ _afterLoadWebmmdo () {setTimeOut () 0, _getUUIDWatchDog, _bGetUUIDSuccess = false;//ajax successִ function _getUUID() { getUUIDCount++; var _self = arguments.callee, _loadError = function(errorText){ _reportNow("Load UUID Error! ErrorText: " + errorText + " getUUIDCount=" + GetUudCount) ؛ if (! _ aowin.qrlogin.code) {_loginPage ( "/jslogin؟appid=wx782c26e4c19acffb&redirect_uri="+encodeUricomponent(location.protocol+"//"+location.host+"/cgi-bin/mmwx-bin/webwxnewloginpage"تو+"&fun=new=new=now=now=now=now=nang=nang=nang=nang=nang=nang=nang=nang=. "البرنامج النصي" ، ذاكرة التخزين المؤقت: FALSE: Function () {cleartimeout (_getuuidwatchdog) ؛ _bgetuuidsuccess = true ؛ _LoadQRimg (qrlogin.uuid) ؛ _Loaderror ("qrlogin.code =" + qrlogincode) ؛ } if ("#login_container"). ) "+" webwxuvid "+" = ([^؛]*) (؛ | $) ")) ؛ if (! _ suvid || _suvid.length <3) return ؛ _suvid = _suvid [2] "/cgi-bin/mmwebwx-bin/webwxstatreport؟ funkey = indexDemo & uvid ="+_ suvid+"& uuid ="+_ scuruuid $ (" #GuideTrigger ، #tiptrigger") ، _omask $ = $ (". mask") ؛ _oguide $ .stop (). _oguidetrigger $ .css ({"BackgroundColor": "White" ، "Opacity": "0"}) ؛ "block"). ClearTimeout (_ntimer) ؛بعد قراءة JS بعناية ، سترى جانب تسجيل الدخول من عميل الويب. يبدأ عميل الويب طلب SSL إلى الخادم كل 500 مللي ثانية ، يطلب ما إذا كان رمز الاستجابة السريعة الحالية مصرحًا به من قبل العملاء الآخرين (الهواتف المحمولة). إذا كانت نتيجة الإرجاع هي 201 ، فهذا يعني أنك حصلت على نفس حساب محطة رمز QR Scan لتسجيل الدخول. إذا كانت مواقف أخرى ، فأرسل الطلب مرة أخرى بعد 500 مللي ثانية. ستستمر هذه العملية حتى يتم فحص رمز الاستجابة السريعة أو توقيت رمز الاستجابة السريعة (غير صالح).
الأدوات المستخدمة هي: أداة الاستيلاء على الحزمة Fidller ، أداة مطور Chrome F12. لاحظ أنه من خلال الصدفة ، لدى عميل WeChat min-webmm1cba21.js ، وهو مرئي بوضوح في مواصفات مرشح XSS. هذا لديه أمل في الحصول على Q لأولئك الذين يحبون اختبار XSS في صندوق أبيض! ! !
تم تجميع هذه المقالة في "ملخص لمهارات تطوير JavaScript WeChat" ، والجميع مرحب بهم للتعلم والقراءة.
أوصي بتعليمي حول تطبيقات WeChat التي تهتم للغاية الآن: قام محرر "برنامج تطوير برنامج WeChat Mini" بتجميعه بعناية للجميع ، وآمل أن يعجبك ذلك.
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.