2016-09-14 7 views
21

मेरे परिप्रेक्ष्य से, क्रॉस-ओरिजिनल रिसोर्स शेयरिंग (सीओआरएस) और सामग्री सुरक्षा नीतियां (सीएसपी) उद्देश्य और कार्यान्वयन में बहुत समान प्रतीत होती है।सीओआरएस और सीएसपी के बीच क्या अंतर है?

दोनों आपको संसाधनों की उत्पत्ति को श्वेतसूची में शामिल करने की अनुमति देते हैं जो आपके वेबपृष्ठ का एक असंगत संस्करण HTTP प्रतिक्रिया शीर्षकों के माध्यम से शामिल करता है। एकमात्र अंतर जो मैं देख सकता हूं वह यह है कि सीएसपी आपके HTTP प्रतिक्रिया में जो स्वीकृति दे सकती है उसमें अधिक बढ़िया लगती है।

उत्तर

29

सीओआरएस Same Origin Policy को डोमेन के लिए आराम करने की अनुमति देता है।

उदा। आम तौर पर यदि उपयोगकर्ता example.com और example.org दोनों में लॉग इन करता है, वही उत्पत्ति नीति example.com को example.org/current_user/full_user_details पर AJAX अनुरोध करने और प्रतिक्रिया तक पहुंच प्राप्त करने से रोकती है।

यह वेब की डिफ़ॉल्ट नीति है और एक ही समय में कई साइटों में लॉग इन होने पर उपयोगकर्ता के डेटा को लीक होने से रोकती है।

अब सीओआरएस के साथ, example.org यह कहने के लिए नीति सेट कर सकता है कि यह AJAX द्वारा किए गए प्रतिक्रियाओं को पढ़ने के लिए मूल https://example.com की अनुमति देगा। यह किया जाएगा यदि example.com और example.org दोनों एक ही कंपनी द्वारा चलाए जाते हैं और मूल के बीच डेटा साझाकरण उपयोगकर्ता के ब्राउज़र में अनुमति दी जाती है। यह केवल चीजों के क्लाइंट-साइड को प्रभावित करता है, न कि सर्वर-साइड।

दूसरी ओर सीएसपी वर्तमान नीति पर कौन सी सामग्री चला सकता है इसकी एक नीति निर्धारित करता है। उदाहरण के लिए, यदि जावास्क्रिप्ट को इनलाइन निष्पादित किया जा सकता है, या कौन से डोमेन .js फ़ाइलों को लोड किया जा सकता है। यह XSS हमलों के खिलाफ रक्षा की एक और पंक्ति के रूप में कार्य करने के लिए फायदेमंद हो सकता है, जहां हमलावर HTML पृष्ठ में स्क्रिप्ट को आज़माएगा और इंजेक्ट करेगा। आम तौर पर output would be encoded, हालांकि, डेवलपर केवल एक आउटपुट फ़ील्ड पर भूल गया था। चूंकि पॉलिसी इन-लाइन स्क्रिप्ट को निष्पादित करने से रोक रही है, इसलिए हमला विफल हो गया है।

+0

बहुत उपयोगी उत्तर के लिए धन्यवाद (मैंने ऊपर उठाया लेकिन मेरा प्रतिनिधि गिनने के लिए कम है)। एकमात्र हिस्सा मैं काफी अनुवर्ती नहीं था "आम तौर पर आउटपुट एन्कोड किया जाएगा"। शायद यह दूसरों की मदद करेगा यदि आप इसे थोड़ा सा स्पष्ट कर सकते हैं? – nickform

+0

निश्चित रूप से। मैंने इस बिट को समझाने के लिए एक और जवाब से जुड़ा हुआ है। अगर आपको किसी और स्पष्टीकरण की आवश्यकता है तो कृपया मुझे बताएं। – SilverlightFox

+0

हां, धन्यवाद - मैं अब का पालन करता हूं। – nickform

16

सीओआरएस साइट ए को साइट ए से (संभावित रूप से निजी) डेटा पढ़ने के लिए अनुमति देता है (आगंतुक के ब्राउज़र और प्रमाण-पत्रों का उपयोग करके)।

सीएसपी खुद को अप्रत्याशित स्रोतों (जैसे एक्सएसएस के खिलाफ रक्षा के रूप में) से लोडिंग (संभावित रूप से दुर्भावनापूर्ण) सामग्री से रोकने के लिए साइट को अनुमति देता है।

1

सीओआरएस अपनी सेवाओं का उपयोग करने के लिए प्राधिकरण के लिए तीसरे पक्ष के साथ जांच करता है। इसलिए, तीसरी पार्टी प्राधिकरण प्रदान या अस्वीकार करती है।

तो उदाहरण के लिए यदि www.example.com में एक पृष्ठ को www.example.org पर एक अनुरोध करने की आवश्यकता है तो हमें www.example.org पर मूल के साथ भेजे गए एक विकल्प अनुरोध भेजने की आवश्यकता है: www.example.com प्रमाणीकरण के लिए अनुरोध करने के लिए एक अग्रदूत। अब, www.example.org प्रमाणीकरण प्रदान करता है या इनकार करता है।

सीएसपी एक वेबपृष्ठ को अनजाने में किसी तीसरे पक्ष से दुर्भावनापूर्ण सामग्री लोड करने से रोकता है, यह निर्दिष्ट करके कि किसी विशेष प्रकार की सामग्री को लोड किया जा सकता है। तो, उदाहरण के लिए यदि आप एक वैध स्रोत निम्न स्क्रिप्ट, सीएसएस, मीडिया आदि से प्रत्येक के लिए निर्देशों का उपयोग कर

द्वारा प्रदान कर सकते हैं

उदाहरण:

सामग्री-सुरक्षा-नीति: डिफ़ॉल्ट-src 'कोई नहीं'; स्क्रिप्ट-src 'self' www.google-analytics.com ajax.googleapis।कॉम; कनेक्ट-src 'self'; img-src 'self'; शैली-स्रोत 'स्वयं';

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