سؤال

وأرى IFRAME / P3P الحيلة هي الأكثر شعبية واحدة حولها، ولكن أنا شخصيا لا أحب ذلك لأن جافا سكريبت + مخفية حقول + إطار حقا جعل الأمر يبدو وكأنه مهمة الإختراق. جئت أيضا عبر نهج السيد والعبد استخدام خدمة ويب للتواصل ( HTTP: // شبكة الاتصالات العالمية. 15seconds.com/issue/971108.htm ) ويبدو أفضل لأنه شفافا بالنسبة للمستخدم وانها قوية ضد متصفحات مختلفة.

هل هناك أي نهج أفضل، وما هي إيجابيات وسلبيات كل منها؟

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

المحلول

وتوجهي يعين مجال واحد مثل المجال 'المركزي' وغيرهم أي والمجالات "الفضائية".

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

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

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

والآن، المستخدم لديه ملف تعريف ارتباط جلسة في كل من المجال المركزي والمجال الفضائية. ولكن ماذا لو زيارتهم قمر اخر؟ حسنا، عادة، فإنها تظهر على القمر الصناعي كما غير المصادق.

ولكن، في جميع أنحاء طلبي، كلما كان مستخدم في جلسة صحيحة، كل وصلات إلى صفحات على المجالات الفضائية الأخرى لديها؟ ق أو والصورة المرفقة لهم. I حجز هذه الصورة 'سلسلة الاستعلام على أنها تعني "تحقق مع خادم مركزي لأننا نحسب هذا المستخدم لديه جلسة". وهذا هو، يظهر أي هوية رمزية أو جلسة في أي صفحة HTML، إلا أن الرسالة 's' والذي لا يمكن تحديد شخص.

وA URL تلقي مثل هذه الصورة "العلامة الاستعلام و، إذا لم يكن هناك جلسة صالحة بعد، لا إعادة توجيه إلى المجال المركزي قائلا:" هل يمكن أن تخبرني من هو هذا؟ " عن طريق وضع شيء في سلسلة الاستعلام.

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

وبلدي حل يعمل بدون النصي، أو دعم iframe. أنها لا تتطلب "؟ ق" تضاف إلى أي عناوين المواقع عبر المجال حيث أن المستخدم قد لا يكون بعد ارتباط في ذلك URL. أنا لم أفكر في وسيلة للالتفاف حول هذا: عندما يسجل المستخدم أولا في، وإنشاء سلسلة من الموجهات حول كل مجال واحد، ووضع ملف تعريف ارتباط جلسة في كل واحد. السبب الوحيد الذي لم تنفذ ذلك هو أنه سيكون معقدا في أنك سوف تحتاج إلى أن تكون قادرا على أن يكون ترتيب المجموعة أن هذه الموجهات يمكن أن يحدث في ومتى تتوقف، وسوف تمنعك من التوسع إلى ما بعد 15 أو نحو ذلك المجالات (وكثير جدا أكثر وتصبح قريبة بشكل خطير إلى "حد توجيه" العديد من المتصفحات وكلاء).

نصائح أخرى

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

والمثال في هذا المقال يبدو مريبا بالنسبة لي لإعادة توجيه أساسا إلى رابط الذي، بدوره، يمر المتغيرات إلى نطاقك في سلسلة استعلام مواقع المعلومات.

في المثال، هذا يعني أن المتطفلين يمكن ببساطة انتقل إلى HTTP: يتم تسجيل //slave.com/return.asp؟Return=blah&UID=123 "وعلى slave.com كمستخدم 123.

وأنا شيء مفقود، أو هو يعرف جيدا أن هذه التقنية آمنة ويجب ألا تستخدم ل، حسنا، أشياء من هذا القبيل سبيل المثال يقترح (يمر من هوية المستخدم حولها، ويفترض أن تجعل هوية الشخص المحمولة).

وthomasrutter

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

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

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

لاحظ أن return.asp الخاص بك يمكن أن يساء استخدامها لإعادة توجيه إلى أي موقع (انظر <لأ href = "http://www.casabasecurity.com/content/open-redirects-whats-problem" يختلط = "نوفولو noreferrer" > هذا على سبيل المثال).

وطيب ويبدو لي أن وجدت الحل، يمكنك إنشاء علامة النصي الذي يقوم بتحميل SRC المجال الذي تريد تعيين / الحصول على ملفات تعريف الارتباط على ... رحلات السفاري فقط يبدو حتى الآن أن لا يكون قادرا على وضع الكوكيز، ولكن IE6 وFF تعمل بشكل جيد ... لا يزال إذا كنت ترغب فقط في الحصول على الكوكيز، وهذا هو نهج جيد للغاية.

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

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

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