سؤال

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

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

المحلول

نعم، ولكن نأخذ في الاعتبار بعض وكلاء وغيرها من الامور تجريد هذه المعلومات خارج، وأنها يمكن أن تكون مزورة بسهولة. لذلك لا تعتمد على ذلك. على سبيل المثال، لا أعتقد أن التطبيق الويب الخاص بك هو آمن من CSRF لأنك مراجعة المرجع لمباراة الخادم الخاص بك.

$referringSite = $_SERVER['HTTP_REFERER']; // is that spelt wrong in PHP ?

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

andyk يشير في التعليقات، سيكون لديك أيضا للسماح www.example.com والمثال. كوم.

نصائح أخرى

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

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

وراجع للشغل، يمكنك أيضا منع المشيرين في باستخدام mod_rewrite و.

وتحتاج إلى دراسة مجموعة $ _SERVER ل 'HTTP_REFERER "مفتاح.

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