سؤال

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

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

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

المحلول 7

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

نصائح أخرى

وأسف هذا لن يكون ممكنا.

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

وعلى سبيل المثال، يمكنك تشغيل جافا سكريبت التالية إلى reparent صفحتك إذا كان هذا هو القصد:

if (top.location != location) {
  top.location.href = document.location.href ;
}

والتفكير في هذا ... أنا غير مقتنع هذا هو آمنة تماما، ولكن هنا لقطة في حين أفكر في ذلك أكثر -

والطريقة الوحيدة التي يمكن أن تفعل هذا، هو اذا كنت السيطرة على المواقع التي سوف تكون جزءا لا يتجزأ في حالة السيطرة عليها، هل يمكن تمرير الوقت، المشفرة، من إطارات إلى الإطار:.

<اقتباس فقرة>
 <iframe src="http://yourdomain/frame.php?key=p21n9u234p8yfb8yfy234m3lunflb8hv" />

وframe.php ثم يفك شفرة الرسالة إلى إيجاد الوقت داخل دلتا صغيرة (ويقول 10 ثانية). لأن frame.php يعرف مواقع مقبولة فقط يمكن أن تشفير الوقت، فهو يعرف انه بخير لعرض نفسها. وإلا، فإنه النواتج شيء.

وأي شئ آخر، سواء كان جافا سكريبت أو HTTP_REFER، يمكن المغشوش، إيقاف، أو التحايل عليها.

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

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

<script type="text/javascript"><!--
myiframe_client = "12345";
myiframe_width = 728;
myiframe_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://www.example.com/scripts/show_iframe.js">
</script>

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

ويمكن أن تكون الشاشة تجريف حل ممكن هنا.

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

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

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

ويمكنك MD5 (أو تشفير لتحسين الأمن) وIP العميل باستخدام الملح السري + تاريخ وتمرير هذه كمعلمة في رابط IFRAME SRC. في الإطار من أن تفعل الشيء نفسه، ومعرفة ما اذا كان النتيجة هي نفس المعلمة. إذا لم يكن كذلك، منع الوصول

يمكنك التحقق من $_SERVER['HTTP_REFERER'] للتأكد من أنه يشمل معين السلسلة ؟

if (strpos('http://example.com', $_SERVER['HTTP_REFERER']) !== false) {
    // allowed
}

في حالتك قد تحتاج إلى تحليل من العنوان أولا ثم تحقق إذا in_array().

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

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