كيف تتيح لك هذا الإشارة المرجعية البقاء موقعة في هذا الموقع؟

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

سؤال

لقد جئت عبر إشارة مرجعية Evernote وكان يتساءل كيف نجح هذا.

يمكنك فقط سحبها إلى إشارة مرجعية لديك والانتقال إلى أي صفحة ويب ، انقر فوق هذه الإشارة المرجعية وسيطلب منك أولاً تسجيل الدخول. كل هذا قمت به بالفعل ومعرفة كيفية عمله.

الشيء الذي لا أفهمه هو أنه عند تسجيل الدخول ، يقومون المصادقة عليك والسماح لك بإرسال الأشياء (في هذه الحالة ، عنوان URL لموقع وما إلى ذلك). عند الانتهاء من المرجعية التي وضعت تراكبًا صغيرًا على الصفحة التي تشاهدها تختفي.

عندما تذهب إلى علامة تبويب جديدة واستخدم الإشارة المرجعية مرة أخرى ، لا تزال مسجلة الدخول! كيف؟

أستطيع أن أرى أنهم يستخدمون iframe عندما يقوم مرجعية بهم بتحميل التراكب على الصفحة - لكن هل يقومون بتعيين ملفات تعريف الارتباط أو شيء من هذا القبيل؟ إذا كان الأمر كذلك ، هل هذا آمن؟ يمكن لأي شخص تغيير القيم؟ أم أنهم يستخدمون نوعًا من نظام المفاتيح الخاصة/العامة

راجع للشغل ، أود تكرار هذه المرجعية باستخدام php/javaScript (jQuery ربما). وسأكون ممتناً إذا كان بإمكان أي شخص مساعدتي في فهم كيفية قيامهم بذلك أو توجيه لي إلى البرامج التعليمية ذات الصلة.

شكرا جميع على أي مساعدة.

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

المحلول

بالنسبة للمبتدئين ، إليك الكود الذي تنفذه الإشارة الإشارة المميزة:

(function(){
    EN_CLIP_HOST = 'http://www.evernote.com';

try{
    var x = document.createElement('SCRIPT');
    x.type='text/javascript';
    x.src = EN_CLIP_HOST + '/public/bookmarkClipper.js?' + (new Date().getTime()/100000);

    document.getElementsByTagName('head')[0].appendChild(x);

} catch(e) {

    location.href = EN_CLIP_HOST + '/clip.action?url=' + encodeURIComponent(location.href) + '&title=' + encodeURIComponent(document.title);
}

})();

ما تفعله بسيط نسبيا. يحاول الحصول على نص من موقع Evernote ويضيف طابعًا زمنيًا إلى الطلب بحيث يقوم دائمًا بسحب نسخة جديدة. إذا نجح ذلك ، تتم إضافة مجموعة من JavaScript إلى الصفحة التي تبني iframe التي يتم من خلالها تعرض جميع وظائف Evernote ويمكن أن تستخدم IFRame ملفات تعريف الارتباط القياسية ، وما إلى ذلك للتأكد من تسجيل الدخول ثم معالجة طلبك .

كتلة الصيد هي فقط في حالة فشل تحميل البرنامج النصي الديناميكي ، حيث تسبب إعادة توجيهك إلى موقع Evernote ، لذلك (أظن) أنه يمكنه تقسيم المحتوى من هناك.

للإجابة على السؤال المحدد حول كيفية تسجيل الدخول ، لا يزال لديك تسجيل الدخول لأن متصفحك لديه الآن ملفات تعريف الارتباط للجلسة لموقع Evernote (www.evernote.com) ، لذلك عندما يفتح iFrame على الموقع الثاني ، هذه ملفات تعريف الارتباط تسير معها ويدرك Evernote أنك قمت بتسجيل الدخول. استخدام ملفات تعريف الارتباط هو إلى حد كبير المعيار للجلسات على الويب ، لذلك لا يفعلون أي شيء خاص هنا ، وأنا متأكد من أنه يمكنك البحث عن مشكلات الأمان جلسات ملفات تعريف الارتباط المحيطة.

النقطة الرئيسية هي أن iframe تشبه بشكل أساسي فتح نافذة منفصلة ، باستثناء أنها تتيح نقل بعض البيانات المحدودة بواسطة الصفحة الأساسية إلى iframe حتى تعرف موقع الويب الذي أنت عليه.

امل ان يساعد.

نصائح أخرى

ربما يستخدمون ملفات تعريف الارتباط. على الأرجح يفتحون iframe ، مع JavaScript ، على صفحة PHP على موقعهم ، ثم يبحث الموقع عن ملف تعريف ارتباط تسجيل الدخول ، إذا كان هناك ، فإن الموقع يسحب معلومات المستخدم ، ويقوم بعمله.

فقط كن حذرًا ، فأنت بحاجة إلى طريقة للتحقق من أن المستخدم لم ينشأه المستخدم لخداع الموقع. أود تخزين سلسلة عشوائية في ملف تعريف الارتباط ، وكذلك في قاعدة البيانات (في جدول المستخدم). قم بإنشاء السلسلة العشوائية كلما قام المستخدم بتسجيل الدخول. عندما يحاول المستخدم استخدام الإشارة المرجعية ، وقارن بين السلاسل ، والسماح فقط بالوصول إذا كان متساوًا ، إذا لم يكن كذلك ، يحذف ملفات تعريف الارتباط ، واطلب من المستخدم تسجيل الدخول. . هذا يتأكد من أن المهاجم لا يمكنه فقط إنشاء ملف تعريف ارتباط مع معرف المستخدم وتولي حسابه (سيحتاج المهاجم إلى سلسلة عشوائية ، وإنشاء كل تسجيل الدخول ، والذي سيكون من الصعب الحصول عليه) .. أيضًا ، قم بتعيين ملفات تعريف الارتباط على حذف عندما تنتهي جلسة المتصفح ..

آمل أن ساعد ذلك ، ماكس

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