कॉर्स के बारे में पढ़ने के बाद, मुझे समझ नहीं आया कि यह सुरक्षा में सुधार कैसे करता है।
कॉर्स सुरक्षा में सुधार नहीं करता है। कॉर्स सर्वरों को यह बताने के लिए एक तंत्र प्रदान करता है कि उन्हें विदेशी डोमेन द्वारा कैसे एक्सेस किया जाना चाहिए, और यह ऐसा करने की कोशिश करता है जो ब्राउज़र सुरक्षा मॉडल के अनुरूप है जो कॉर्स (अर्थात् समान उत्पत्ति नीति ) से पहले मौजूद था ।
लेकिन समान उत्पत्ति नीति और कोर में एक सीमित गुंजाइश है। विशेष रूप से, CORS विनिर्देशन में अनुरोधों को अस्वीकार करने का कोई तंत्र नहीं है। यह ब्राउज़र को यह बताने के लिए हेडर का उपयोग कर सकता है कि किसी विदेशी डोमेन के पेज को प्रतिक्रिया न पढ़ने दें। और, प्रीफ़्लाइट अनुरोधों के मामले में, यह ब्राउज़र को विदेशी डोमेन से कुछ निश्चित अनुरोध नहीं भेजने के लिए कह सकता है। लेकिन सर्वर वास्तविक अनुरोध को अस्वीकार करने के लिए सर्वर के लिए कोई साधन निर्दिष्ट नहीं करता है (यानी निष्पादित नहीं है)।
एक उदाहरण लेते हैं। एक उपयोगकर्ता A
कुकी के माध्यम से साइट पर लॉग इन होता है । उपयोगकर्ता भार दुर्भावनापूर्ण साइट M
है, जो एक रूप है कि एक करता सबमिट करने का प्रयास POST
करने के लिए A
। क्या होगा? ठीक है, कोर के साथ या बिना, और M
एक अनुमति के डोमेन के साथ या बिना , ब्राउज़र A
उपयोगकर्ता के प्राधिकरण कुकी के साथ अनुरोध भेजेगा , और सर्वर दुर्भावनापूर्ण POST
रूप से निष्पादित करेगा जैसे कि उपयोगकर्ता ने इसे शुरू किया था।
इस हमले को क्रॉस-साइट रिक्वेस्ट फॉरेरी कहा जाता है , और कॉर्स खुद इसे कम करने के लिए कुछ नहीं करता है। इसलिए यदि आप उपयोगकर्ताओं की ओर से डेटा बदलने के अनुरोधों को अनुमति देते हैं तो CSRF सुरक्षा बहुत महत्वपूर्ण है।
अब, Origin
हेडर का उपयोग आपके CSRF सुरक्षा का एक महत्वपूर्ण हिस्सा हो सकता है। वास्तव में, इसकी जाँच बहु-स्तरीय सीएसआरएफ रक्षा के लिए वर्तमान सिफारिश का हिस्सा है । लेकिन Origin
हैडर का उपयोग कोर स्पेसिफिकेशन के बाहर होता है।
संक्षेप में, CORS मौजूदा समान उत्पत्ति नीति सुरक्षा मॉडल को अन्य स्वीकृत डोमेन में विस्तारित करने के लिए एक उपयोगी विनिर्देश है। यह सुरक्षा को नहीं जोड़ता है, और साइटों को उसी प्रकार के रक्षा तंत्र की आवश्यकता होती है जो उन्होंने CORS से पहले किए थे।