CORS

CORS “Cross-Origin Resource Sharing” के लिए खड़ा है। CORS webpages पर scripts को अन्य डोमेन से संसाधनों का अनुरोध करने की अनुमति देता है। अधिकांश web browsers सुरक्षा उद्देश्यों के लिए इस प्रकार के अनुरोधों को default रूप से block कर देते हैं।

एक webpage दूसरे domain से संसाधनों का अनुरोध कर सकता है — जब तक कि अनुरोध HTML से आते हैं। उदाहरण के लिए, <head> अनुभाग संसाधनों का reference दे सकता है, जैसे कि CSS फाइलें, फोंट, और JS अन्य डोमेन की फाइलें।

उदाहरणों में Google Analytics स्क्रिप्ट, jQuery लाइब्रेरी और किसी अन्य server पर होस्ट किए गए फ़ॉन्ट शामिल हैं। इसी तरह, <body> CDN या अन्य domain से छवियों का अनुरोध कर सकता है। HTML में Cross-origin संसाधन अनुरोधों को CORS permissions की आवश्यकता नहीं होती है।

CORS

जब कोई script या iframe तत्व cross-origin अनुरोध करता है, तो CORS की आवश्यकता होती है। उदाहरण के लिए, एक AJAX method – जो page लोड होने के बाद चलती है – किसी अन्य domain से संसाधन का अनुरोध नहीं कर सकती है। CORS इस default browser सेटिंग को overrides करता है और अनुरोध को पूरा करने देता है।

CORS को “access control” HTTP हेडर का उपयोग करके कार्यान्वित किया जाता है। एक server व्यवस्थापक प्रतिक्रिया headers जोड़ या संशोधित कर सकता है, जो किसी webpage तक पहुंचने पर client’s के ब्राउज़र पर भेजे जाते हैं।

ये settings, जिन्हें Apache और IIS सर्वर पर लागू किया जा सकता है, site-specific या server-wide हो सकती हैं। नीचे सामान्य अनुरोध और प्रतिक्रिया शीर्षलेख दिए गए हैं:
CORS अनुरोध शीर्षलेख:

Origin
Access-Control-Request-Method
Access-Control-Request-Headers

CORS प्रतिक्रिया शीर्षलेख:

Access-Control-Allow-Origin
Access-Control-Allow-Methods
Access-Control-Expose-Headers

CORS Example

यदि Techterms.com पर कोई script GET क्रिया का उपयोग करके Shareded.com से संसाधन का अनुरोध करती है, तो वह निम्नलिखित अनुरोध headers भेज सकती है:

उत्पत्ति: https://techterms.com
Access-Control-Request-Method: GET

अनुरोध की अनुमति देने के लिए, sharpened.com निम्नलिखित headers के साथ प्रतिक्रिया दे सकता है:

Access-Control-Allow-Origin: https://techterms.com
Access-Control-Allow-Methods: GET

Access-Control-Allow-Origin को विशिष्ट डोमेन या wildcard पर तारक (*) का उपयोग करके सेट किया जा सकता है। wildcard setting सभी domains से cross-resource अनुरोधों की अनुमति देती है, जो एक सुरक्षा जोखिम हो सकता है।

Access-Control-Allow-Methods को PUT, POST, DELETE, और अन्य पर सेट किया जा सकता है, जिसमें wildcard (*) setting शामिल है जो सभी विधियों की अनुमति देती है।

Leave a comment