सेम-ऑरिजिन नीति, ब्राउज़र की सुरक्षा की एक सुविधा है. यह सुविधा, एक ही ऑरिजिन के दस्तावेज़ और स्क्रिप्ट, संसाधनों के साथ इंटरैक्ट कर सकते हैं लोड हो रहा है.
ब्राउज़र, एक साथ कई साइटों के रिसॉर्स लोड करके उन्हें दिखा सकता है. शायद आपके पास एक ही समय में कई टैब खुलते हैं, या कोई साइट ब्राउज़र से कई iframe एम्बेड कर सकती है अलग-अलग साइटें हैं. अगर इन दोनों के बीच इंटरैक्शन पर कोई पाबंदी नहीं है है और स्क्रिप्ट पर किसी हमलावर द्वारा छेड़छाड़ की जा सकती है, तो स्क्रिप्ट उपयोगकर्ता के ब्राउज़र में मौजूद सभी चीज़ें सार्वजनिक हो जाती हैं.
एक ही ऑरिजिन से जुड़ी नीति, पढ़ने के ऐक्सेस को ब्लॉक करके ऐसा होने से रोकती है किसी अन्य ऑरिजिन से लोड किए गए रिसॉर्स. "लेकिन रुको," आप कहते हैं, "मैं इमेज लोड कर रहा हूँ और हमेशा के लिए, अन्य ऑरिजिन की स्क्रिप्ट देखी जा सकती हैं." ब्राउज़र कुछ टैग को किसी अन्य ऑरिजिन से रिसॉर्स को एम्बेड करें. यह नीति ज़्यादातर ऐतिहासिक आर्टफ़ैक्ट के ज़रिए आपकी साइट पर जोखिम की आशंकाओं का खतरा हो सकता है. जैसे, क्लिकजैकिंग के ज़रिए iframe. क्रॉस-ऑरिजिन रीडिंग को प्रतिबंधित किया जा सकता है ऐसे टैग जो कॉन्टेंट की सुरक्षा नीति.
एक ही ऑरिजिन किसे माना जाता है?
ऑरिजिन, स्कीम से तय होता है (इसे प्रोटोकॉल भी कहा जाता है, उदाहरण के लिए
एचटीटीपी या एचटीटीपीएस), पोर्ट (अगर बताया गया हो), और होस्ट शामिल है. जब तीनों एक जैसे हों
तो उन्हें एक ही ऑरिजिन वाले माना जाता है. उदाहरण के लिए,
http://www.example.com/foo
का ऑरिजिन और यह एक ही है
http://www.example.com/bar
लेकिन https://www.example.com/bar
नहीं
ऐसा इसलिए, क्योंकि स्कीम भी अलग है.
किसकी अनुमति है और किस पर रोक लगाई गई है?
आम तौर पर, क्रॉस-ऑरिजिन रिसॉर्स को एम्बेड करने की अनुमति सिर्फ़ तब दी जाती है, जब क्रॉस-ऑरिजिन रिसॉर्स ब्लॉक है.
iframe |
आम तौर पर, X-Frame-Options डायरेक्टिव के आधार पर, क्रॉस-ऑरिजिन एम्बेड करने की अनुमति होती है. हालांकि, क्रॉस-ऑरिजिन रीडिंग की अनुमति नहीं होती. जैसे, किसी iframe में दस्तावेज़ को ऐक्सेस करने के लिए JavaScript का इस्तेमाल करना.
|
सीएसएस |
किसी सीएसएस फ़ाइल में, <link> एलिमेंट या @import का इस्तेमाल करके, क्रॉस-ऑरिजिन सीएसएस को एम्बेड किया जा सकता है. सही Content-Type हेडर की ज़रूरत पड़ सकती है.
|
फ़ॉर्म |
क्रॉस-ऑरिजिन यूआरएल का इस्तेमाल, फ़ॉर्म एलिमेंट के action एट्रिब्यूट की वैल्यू के तौर पर किया जा सकता है. कोई वेब ऐप्लिकेशन, क्रॉस-ऑरिजिन डेस्टिनेशन पर फ़ॉर्म डेटा लिख सकता है.
|
इमेज | क्रॉस-ऑरिजिन इमेज को एम्बेड करने की अनुमति है. हालांकि, क्रॉस-ऑरिजिन इमेज के डेटा को पढ़ने से रोक लगाई जाती है. जैसे, JavaScript का इस्तेमाल करके क्रॉस-ऑरिजिन इमेज से बाइनरी डेटा हासिल करना. |
मल्टीमीडिया |
क्रॉस-ऑरिजिन वीडियो और ऑडियो को <video> और <audio> एलिमेंट का इस्तेमाल करके एम्बेड किया जा सकता है.
|
स्क्रिप्ट | क्रॉस-ऑरिजिन स्क्रिप्ट एम्बेड की जा सकती हैं; हालांकि, ऐसा हो सकता है कि कुछ एपीआई का ऐक्सेस ब्लॉक हो जाए. जैसे, क्रॉस-ऑरिजिन फ़ेच करने के अनुरोध. |
काम की सूची: DevSite - आकलन के बारे में सोचें और उसकी जांच करें
क्लिकजैकिंग से बचने का तरीका
"क्लिकजैकिंग" नाम का हमला किसी साइट को iframe
और ओवरले में एम्बेड करता है
किसी अन्य वेब पेज पर ले जाने वाले पारदर्शी बटन. लोगों को धोखा दिया जाता है
को यह सोचना कि वे डेटा भेजते समय आपका ऐप्लिकेशन ऐक्सेस कर रहे हैं
हमला करने वालों को टारगेट करना.
अन्य साइटों को आपकी साइट को iframe में एम्बेड करने से रोकने के लिए, कोई कॉन्टेंट जोड़ें
frame-ancestors
के साथ सुरक्षा नीति
डायरेक्टिव
लिंक करना होगा.
इसके अलावा, आपके पास यहां दिए गए एचटीटीपी हेडर में X-Frame-Options
जोड़ने का विकल्प भी होता है
MDN
देखें.
आखिर में खास जानकारी
उम्मीद है कि आपको थोड़ी राहत महसूस होगी कि ब्राउज़र एक गेटकीपर बनने के लिए कड़ी मेहनत करते हैं सुरक्षा के बारे में है. भले ही ब्राउज़र ऐक्सेस को ब्लॉक करके सुरक्षित रहने की कोशिश करते हैं है, तो कभी-कभी आपको अपने का इस्तेमाल करें. अगली गाइड में, क्रॉस-ऑरिजिन रिसॉर्स शेयरिंग के बारे में जानें (सीओआरएस) और ब्राउज़र को यह बताने का तरीका कि क्रॉस-ऑरिजिन रिसॉर्स लोड हो रहे हैं को भरोसेमंद सोर्स से अनुमति मिलती है.