اذهب إلى المحتوى
  • 0

تطبيق قيود العرض على صفحة PHP في iframe على نطاق واحد فقط

Fikri Madrid

السؤال

السلام عليكم.

عندي صفحة بها اكود  على موقع

domain1.com/page.php

و اريد ان تضهر محتواها على موقع واحد فقط على شكل iframe

domain2.com/iframe.php

ومنع كل  المواقع الاخرى بما فيه موقع المتواجد فيه الصفحة  page.php

و اضهار رسالة غير مسموح لك

ولا اريد اكواد تحقق من

http refere 

http host

htaccess

لانه  يتم انتحال و تزيف refere ب php curl

و سبق لي تجربته ولم ينفع ..

تم التعديل في بواسطة Mustafa Suleiman
تعديل عنوان السؤال
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

حاول تجربة استخدام المتغير العالمي $_SERVER['HTTP_REFERER'] في صفحة page.php للتحقق من الموقع الذي يحاول الوصول إلى الصفحة عبر iframe.

وتستطيع التحقق من قيمة المتغير ومقارنتها بعنوان الموقع المسموح به (domain2.com)، وإذا كانت مختلفة، يمكنك عرض رسالة "غير مسموح".

وإليك مثال لكود PHP بإمكانك استخدامه في صفحة page.php:

<?php
$allowedDomain = 'http://domain2.com';

// التحقق من وجود قيمة referer ومقارنتها بالموقع المسموح به
if (isset($_SERVER['HTTP_REFERER']) && strpos($_SERVER['HTTP_REFERER'], $allowedDomain) !== 0) {
    echo "غير مسموح";
    exit;
}

// استمرار في عرض محتوى الصفحة
?>
<!DOCTYPE html>
<html>
<head>
    <title>صفحة</title>
</head>
<body>
    <!-- محتوى الصفحة هنا -->
</body>
</html>

ولاحظ أنه على الرغم من أن هذا الحل يعمل في معظم الحالات، إلا أنه يعتمد على قيمة $_SERVER['HTTP_REFERER'] التي يتم إرسالها من المستعرض، والتي قد تكون غير موثوقة في بعض الحالات.

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

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 1

إذا كنت ترغب في تحقيق هذا السيناريو دون الاعتماد على التحقق من مصادر الإحالة (HTTP Referer) أو اسم المضيف (HTTP Host) أو استخدام ملفات .htaccess، يمكنك القيام بما يلي:

على الصفحة domain1.com/page.php:

قم بتضمين رمز PHP التالي في بداية الصفحة لتحقق ما إذا كانت الصفحة تتم عرضها في iframe:

<?php
// تحقق من قيمة 'HTTP_X_REQUESTED_WITH' المرسلة عن طريق الـ header الخاص بالطلب
if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest') {
    // الصفحة تم عرضها في iframe
    // يمكنك تضمين المحتوى الخاص بك هنا
} else {
    // الصفحة تم عرضها خارج iframe
    echo "غير مسموح لك";
    exit;
}
?>

على الصفحة domain2.com/iframe.php:

استخدم عنصر iframe في HTML لتضمين الصفحة domain1.com/page.php:

<iframe src="https://domain1.com/page.php" frameborder="0"></iframe>

بهذا الشكل، عندما يتم عرض الصفحة domain1.com/page.php خارج عن عنصر الـ iframe، ستظهر رسالة "غير مسموح لك" بدلاً من المحتوى الفعلي للصفحة. وعندما يتم عرضها ضمن عنصر iframe، سيتم عرض المحتوى كما هو متوقع.

ملحوظة: يجب أن تتأكد من أن الصفحة domain1.com/page.php تسمح بالتضمين في iframe عن طريق تعيين رأس الاستجابة (Response Header) الخاص بـ X-Frame-Options إلى "ALLOW-FROM domain2.com"، حتى يتمكن domain2.com/iframe.php من تضمينها بنجاح.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

@Mustafa Suleiman

هذا الكود اعرفه ومنتشر في المواقع بكثرة و سهل انتحال  HTTP_REFERER بكود php curl

CURLOPT_REFERER => $url,

@بلال زيادة

نفس الشئ لهذا الكود يستطيع اي دومين استدعاء الصفحة  المحمية بهذا الكود اسفله 

CURLOPT_HTTPHEADER => array("X-Requested-With: XMLHttpRequest"),

شاهدت بعض المواقع لنقل المياشر للمباربات كرة القدم نجحت في حماية الصفحة و  تضمينها في افرام على دومين خاص بهم

و شكرا على ردكم ..

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...