2010-05-06 20 views
7

लोड करने में सक्षम होने की अनुमति दें, मैं दान के लिए कुछ विजेट बना रहा हूं। कुछ लोगो लाइसेंसिंग malarkey के कारण, मुझे केवल सफेद सूचीबद्ध साइटों को कोड चलाने से, या विजेट के बजाए एक त्रुटि संदेश (या ऐसा कुछ) भेजने की अनुमति देने का कोई तरीका ढूंढना होगा।केवल कुछ डोमेन iFrame

हमें आईफ्रेम का उपयोग करना होगा क्योंकि उचित कुछ साइटें पहले ही उन्हें एम्बेड कर चुकी हैं। आदर्श रूप में, एक PHP समाधान सबसे अच्छा होगा, लेकिन आवश्यकता होने पर जेएस ठीक है।

तो, एक लाइनर; क्या मैं डोमेन को आईफ्रेम में बैठा हूं और इसे अलग-अलग सामग्री भेज सकता हूं?

मुझे आश्चर्य है कि क्या संभावना यह करने के लिए सक्षम होने के हैं ...

उत्तर

5

आप HTTP_REFERER शीर्ष लेख का उपयोग कर सकते हैं।

<?php 

$allowed_domains = array(
     'a-good-domain.com', 
     'another-nice-one.org', 
     ); 

$allowed = false; 
foreach ($allowed_domains as $a) { 
    if (preg_match("@https?://$a/.*@", $_SERVER['HTTP_REFERER'])) { 
     $allowed = true; 
    } 
} 

if ($allowed) 
    echo "Nice domain"; 
else 
    echo "Ugly domain"; 
+1

आपको इसके लिए एक हैश का उपयोग करना चाहिए। इस तरह '$ allow_domains' से अधिक लूप करने की आवश्यकता नहीं है। – friedo

+0

बहुत बढ़िया! यह पूरी तरह से काम करता है। :) – PaulAdamDavis

+0

क्या HTTTP_REFERER शीर्षलेख धोखा दिया जा सकता है? यदि हां, तो इस हेडर पर निर्भर सुरक्षित नहीं होगा। – ramkumar

संबंधित मुद्दे