CORS Explained

From binaryoption
Jump to navigation Jump to search
Баннер1
  1. CORS Explained

परिचय

क्रॉस-ओरिजिन रिसोर्स शेयरिंग (CORS) एक वेब सुरक्षा तंत्र है जो ब्राउज़र को एक अलग डोमेन से संसाधनों का अनुरोध करने से रोकता है। यह एक महत्वपूर्ण सुरक्षा सुविधा है जो क्रॉस-साइट स्क्रिप्टिंग (XSS) जैसे हमलों से बचाने में मदद करती है। हालांकि, यह विकास के दौरान जटिलताएं भी पैदा कर सकता है, खासकर जब एपीआई के साथ काम करते हैं। यह लेख शुरुआती लोगों के लिए CORS को विस्तार से समझाने का प्रयास करेगा, जिसमें इसकी आवश्यकता, कार्यप्रणाली, कॉन्फ़िगरेशन और संभावित समस्याओं को शामिल किया गया है। बाइनरी ऑप्शन ट्रेडिंग में भी, डेटा फीड और एपीआई के उपयोग में CORS की समझ आवश्यक हो सकती है।

मूल अवधारणाएं

CORS को समझने से पहले, कुछ मूल अवधारणाओं को समझना महत्वपूर्ण है:

  • **ओरिजिन (Origin):** ओरिजिन प्रोटोकॉल, डोमेन और पोर्ट का संयोजन है। उदाहरण के लिए, `https://www.example.com:8080` एक ओरिजिन है।
  • **समान-ओरिजिन नीति (Same-Origin Policy):** यह एक महत्वपूर्ण वेब सुरक्षा अवधारणा है जो ब्राउज़र को एक ओरिजिन से लोड किए गए दस्तावेज़ को एक अलग ओरिजिन से संसाधनों का अनुरोध करने से रोकती है। यह नीति XSS हमलों को रोकने में मदद करती है।
  • **सरल अनुरोध (Simple Request):** यह एक ऐसा HTTP अनुरोध है जो कुछ शर्तों को पूरा करता है, जैसे कि `GET`, `HEAD`, या `POST` विधि का उपयोग करना और `Content-Type` हेडर `application/x-www-form-urlencoded`, `multipart/form-data`, या `text/plain` में से एक होना। सरल अनुरोधों को CORS प्रीफ़्लाइट अनुरोध की आवश्यकता नहीं होती है।
  • **प्रीफ़्लाइट अनुरोध (Preflight Request):** यह एक अतिरिक्त HTTP अनुरोध है जो ब्राउज़र एक वास्तविक अनुरोध भेजने से पहले करता है ताकि यह जांचा जा सके कि सर्वर क्रॉस-ओरिजिन अनुरोध को स्वीकार करेगा या नहीं। यह `OPTIONS` विधि का उपयोग करता है।

CORS की आवश्यकता क्यों है?

समान-ओरिजिन नीति एक मजबूत सुरक्षा सुविधा है, लेकिन यह वेब विकास में बाधाएं भी पैदा कर सकती है। कई वेब एप्लिकेशन को अलग-अलग डोमेन से संसाधनों तक पहुंचने की आवश्यकता होती है, जैसे कि एपीआई सर्वर या सामग्री वितरण नेटवर्क (CDN)। CORS इस आवश्यकता को पूरा करने का एक तरीका प्रदान करता है, जबकि सुरक्षा को भी बनाए रखता है।

उदाहरण के लिए, मान लीजिए कि आपके पास `https://www.example.com` पर एक वेब एप्लिकेशन है और आप `https://api.example.com` पर एक एपीआई से डेटा प्राप्त करना चाहते हैं। समान-ओरिजिन नीति के अनुसार, ब्राउज़र डिफ़ॉल्ट रूप से इस अनुरोध को ब्लॉक कर देगा। CORS आपको एपीआई सर्वर को यह बताने की अनुमति देता है कि `https://www.example.com` को डेटा तक पहुंचने की अनुमति है।

CORS कैसे काम करता है?

CORS निम्नलिखित चरणों में काम करता है:

1. ब्राउज़र एक क्रॉस-ओरिजिन अनुरोध करता है। 2. सर्वर अनुरोध को संसाधित करता है और `Access-Control-Allow-Origin` हेडर के साथ प्रतिक्रिया देता है। 3. ब्राउज़र `Access-Control-Allow-Origin` हेडर की जांच करता है। यदि हेडर का मान अनुरोध के ओरिजिन से मेल खाता है, या `*` है (जो सभी ओरिजिन को अनुमति देता है), तो ब्राउज़र प्रतिक्रिया को एप्लिकेशन को भेजता है। अन्यथा, ब्राउज़र अनुरोध को ब्लॉक कर देता है।

अगर अनुरोध एक प्रीफ़्लाइट अनुरोध है, तो सर्वर को अतिरिक्त हेडर भी भेजने की आवश्यकता होती है, जैसे कि `Access-Control-Allow-Methods` (अनुमत HTTP विधियों की सूची) और `Access-Control-Allow-Headers` (अनुमत हेडर की सूची)।

CORS हेडर

CORS को कॉन्फ़िगर करने के लिए उपयोग किए जाने वाले कुछ महत्वपूर्ण हेडर यहां दिए गए हैं:

  • **Access-Control-Allow-Origin:** यह हेडर सर्वर को बताता है कि कौन से ओरिजिन को संसाधन तक पहुंचने की अनुमति है। इसका मान एक विशिष्ट ओरिजिन (जैसे, `https://www.example.com`) या `*` (जो सभी ओरिजिन को अनुमति देता है) हो सकता है।
  • **Access-Control-Allow-Methods:** यह हेडर सर्वर को बताता है कि कौन सी HTTP विधियों को क्रॉस-ओरिजिन अनुरोधों के लिए अनुमति दी जाती है। इसका मान विधियों की एक अल्पविराम से अलग सूची है (जैसे, `GET, POST, PUT, DELETE`)।
  • **Access-Control-Allow-Headers:** यह हेडर सर्वर को बताता है कि कौन से हेडर को क्रॉस-ओरिजिन अनुरोधों में शामिल करने की अनुमति है। इसका मान हेडर की एक अल्पविराम से अलग सूची है (जैसे, `Content-Type, Authorization`)।
  • **Access-Control-Allow-Credentials:** यह हेडर सर्वर को बताता है कि क्या क्रॉस-ओरिजिन अनुरोधों को कुकीज़ और प्रमाणीकरण जानकारी शामिल करने की अनुमति है। इसका मान `true` या `false` हो सकता है।
  • **Access-Control-Max-Age:** यह हेडर ब्राउज़र को बताता है कि प्रीफ़्लाइट अनुरोध के परिणाम को कितने सेकंड तक कैश करना है।
CORS हेडर
Description | Example | Specifies the origin(s) allowed to access the resource. | `https://www.example.com` or `*` | Specifies the allowed HTTP methods. | `GET, POST, PUT, DELETE` | Specifies the allowed request headers. | `Content-Type, Authorization` | Indicates whether the request can include credentials like cookies. | `true` or `false` | Specifies how long the browser should cache the preflight request results. | `3600` (seconds) |

CORS कॉन्फ़िगरेशन

CORS को कॉन्फ़िगर करने का तरीका वेब सर्वर पर निर्भर करता है। यहां कुछ सामान्य वेब सर्वरों के लिए उदाहरण दिए गए हैं:

  • **Apache:** आप `.htaccess` फ़ाइल में निम्नलिखित पंक्तियाँ जोड़कर CORS को कॉन्फ़िगर कर सकते हैं:

``` Header set Access-Control-Allow-Origin "*" Header set Access-Control-Allow-Methods "GET, POST, PUT, DELETE" Header set Access-Control-Allow-Headers "Content-Type, Authorization" ```

  • **Nginx:** आप `nginx.conf` फ़ाइल में निम्नलिखित ब्लॉक जोड़कर CORS को कॉन्फ़िगर कर सकते हैं:

``` location / {

   add_header Access-Control-Allow-Origin "*";
   add_header Access-Control-Allow-Methods "GET, POST, PUT, DELETE";
   add_header Access-Control-Allow-Headers "Content-Type, Authorization";

} ```

  • **Node.js (Express):** आप `cors` मिडलवेयर का उपयोग करके CORS को कॉन्फ़िगर कर सकते हैं:

```javascript const express = require('express'); const cors = require('cors'); const app = express();

app.use(cors());

app.get('/api/data', (req, res) => {

 res.json({ message: 'Data from API' });

});

app.listen(3000, () => {

 console.log('Server listening on port 3000');

}); ```

CORS और बाइनरी ऑप्शन

बाइनरी ऑप्शन ट्रेडिंग में, कई प्लेटफ़ॉर्म वास्तविक समय के डेटा फीड और एपीआई का उपयोग करते हैं। इन फीड्स और एपीआई तक पहुंचने के लिए, CORS कॉन्फ़िगरेशन की आवश्यकता हो सकती है। यदि प्लेटफ़ॉर्म और डेटा प्रदाता अलग-अलग डोमेन पर होस्ट किए गए हैं, तो CORS यह सुनिश्चित करता है कि प्लेटफ़ॉर्म डेटा तक सुरक्षित रूप से पहुंच सकता है। गलत CORS कॉन्फ़िगरेशन के कारण डेटा फीड में त्रुटियां या ट्रेडिंग प्लेटफ़ॉर्म की कार्यक्षमता में समस्याएं हो सकती हैं।

सामान्य CORS समस्याएं और समाधान

  • **अनुरोध अवरुद्ध:** यदि आपको CORS से संबंधित त्रुटि मिलती है, तो इसका मतलब है कि सर्वर क्रॉस-ओरिजिन अनुरोध को स्वीकार नहीं कर रहा है। सुनिश्चित करें कि सर्वर पर CORS सही ढंग से कॉन्फ़िगर किया गया है और `Access-Control-Allow-Origin` हेडर अनुरोध के ओरिजिन से मेल खाता है या `*` पर सेट है।
  • **प्रीफ़्लाइट अनुरोध विफल:** यदि प्रीफ़्लाइट अनुरोध विफल हो जाता है, तो इसका मतलब है कि सर्वर अनुरोधित HTTP विधि या हेडर का समर्थन नहीं करता है। सुनिश्चित करें कि `Access-Control-Allow-Methods` और `Access-Control-Allow-Headers` हेडर सही ढंग से कॉन्फ़िगर किए गए हैं।
  • **क्रेडेंशियल्स समस्याएँ:** यदि आप कुकीज़ या प्रमाणीकरण जानकारी के साथ क्रॉस-ओरिजिन अनुरोध कर रहे हैं, तो सुनिश्चित करें कि `Access-Control-Allow-Credentials` हेडर `true` पर सेट है और सर्वर कुकीज़ को ठीक से संसाधित कर रहा है।

सुरक्षा विचार

जबकि CORS सुरक्षा में सुधार करता है, यह पूरी तरह से सुरक्षित नहीं है। `Access-Control-Allow-Origin: *` का उपयोग करना असुरक्षित हो सकता है, क्योंकि यह किसी भी ओरिजिन को संसाधन तक पहुंचने की अनुमति देता है। उत्पादन वातावरण में, केवल विशिष्ट ओरिजिन को अनुमति देना सबसे अच्छा है।

निष्कर्ष

CORS एक महत्वपूर्ण वेब सुरक्षा तंत्र है जो ब्राउज़र को क्रॉस-ओरिजिन अनुरोधों को नियंत्रित करने की अनुमति देता है। यह समझना कि CORS कैसे काम करता है और इसे सही ढंग से कॉन्फ़िगर कैसे किया जाता है, वेब विकास और बाइनरी ऑप्शन ट्रेडिंग प्लेटफ़ॉर्म के लिए आवश्यक है। सही CORS कॉन्फ़िगरेशन यह सुनिश्चित करता है कि एप्लिकेशन सुरक्षित रूप से डेटा तक पहुंच सकते हैं और सुचारू रूप से काम कर सकते हैं।

संबंधित लिंक

अभी ट्रेडिंग शुरू करें

IQ Option पर रजिस्टर करें (न्यूनतम जमा $10) Pocket Option में खाता खोलें (न्यूनतम जमा $5)

हमारे समुदाय में शामिल हों

हमारे Telegram चैनल @strategybin से जुड़ें और प्राप्त करें: ✓ दैनिक ट्रेडिंग सिग्नल ✓ विशेष रणनीति विश्लेषण ✓ बाजार की प्रवृत्ति पर अलर्ट ✓ शुरुआती के लिए शिक्षण सामग्री

Баннер