डिफ़ॉल्ट रूप से, CORS में क्रॉस-ऑरिजिनल अनुरोधों पर कुकीज़ शामिल नहीं हैं। यह अन्य क्रॉस-ऑरिजिन तकनीकों से अलग है जैसे कि JSON-P। JSON-P में हमेशा अनुरोध के साथ कुकीज़ शामिल होती हैं, और इस व्यवहार के कारण क्रॉस-साइट अनुरोध जालसाजी या CSRF नामक कमजोरियों का एक वर्ग हो सकता है ।
कोर में CSRF कमजोरियों की संभावना को कम करने के लिए, CORS को सर्वर और क्लाइंट दोनों को यह स्वीकार करने की आवश्यकता होती है कि अनुरोधों पर कुकीज़ को शामिल करना ठीक है। ऐसा करने से कुकीज़ बिना किसी नियंत्रण के निष्क्रिय हो जाने की बजाय एक सक्रिय निर्णय बन जाती है।
ग्राहक कोड चाहिए सेट withCredentials
पर संपत्ति XMLHttpRequest
के लिए true
आदेश की अनुमति देने के लिए।
हालाँकि, यह शीर्ष लेख अकेले पर्याप्त नहीं है। हेडर के साथ सर्वर को जवाब देना होगाAccess-Control-Allow-Credentials
। इस हेडर के साथ प्रतिक्रिया करने का true
अर्थ है कि सर्वर क्रॉस-ऑरिजिनल अनुरोधों पर कुकीज़ (या अन्य उपयोगकर्ता क्रेडेंशियल्स) को शामिल करने की अनुमति देता है।
यदि आप क्रॉस-ऑरिजनल क्रेडेंशियल अनुरोधों को काम करना चाहते हैं तो आपको यह सुनिश्चित करने की भी ज़रूरत है कि आपका ब्राउज़र तृतीय-पक्ष कुकीज़ को ब्लॉक नहीं कर रहा है।
ध्यान दें कि चाहे आप समान-मूल या क्रॉस-मूल अनुरोध कर रहे हों, आपको अपनी साइट को सीएसआरएफ से बचाने की आवश्यकता है (विशेषकर यदि आपके अनुरोध में कुकीज़ शामिल हैं)।