शुरुआती के लिए कॉर्स परिचय

आश्चर्य है कि कॉर्स (क्रॉस-ऑरिजनल रिसोर्स शेयरिंग) क्या है?


जासूसी फिल्मों में, सुरक्षा संचालकों के पास सूचनाओं को आपस में प्रसारित करने का एक कूट तरीका होता है। चूंकि वे ज्यादातर ऐसी सूचनाएं प्रसारित कर रहे हैं जो उनके खिलाफ इस्तेमाल की जा सकती हैं यदि यह उनके दुश्मनों के हाथों में आती है, तो उन्हें यह सुनिश्चित करना होगा कि जो लोग जानकारी प्राप्त कर रहे हैं वे विश्वसनीय पक्ष हैं। यही बात उन लोगों पर भी लागू होती है जो उक्त जानकारी भेज रहे हैं। जब प्रेषक और रिसीवर पर भरोसा किया जाता है, तो जानकारी की विश्वसनीयता और सुरक्षा की गारंटी दी जा सकती है.

https://pt.slideshare.net/atirekgupta/selenium-workshop-34820044

इस परिदृश्य की प्रतिकृति ब्राउज़र और वेब सर्वर के बीच संचार में होती है, और इसे कहा जाता है एक ही मूल नीति.

एमडीएन के अनुसार:

 एक ही मूल नीति एक महत्वपूर्ण सुरक्षा तंत्र है जो प्रतिबंधित करता है कि कैसे एक दस्तावेज़ या स्क्रिप्ट एक मूल से भरी हुई है और दूसरे मूल से संसाधन के साथ बातचीत कर सकती है। यह संभावित दुर्भावनापूर्ण दस्तावेज़ों को अलग करने में मदद करता है, संभावित हमले वैक्टर को कम करता है.

कॉर्स क्या है?

वास्तविक जीवन के मामले में, जब सुरक्षा ऑपरेटर्स एक नियम देते हैं कि संचार केवल सुरक्षा के साधन के रूप में अपने ऑपरेटर्स के बीच होना चाहिए, जो समान-मूल नीति के समान है। फिर भी, ऐसे मामले हो सकते हैं जहां उन्हें बाहरी दुनिया के साथ बातचीत करने की आवश्यकता होगी। या अन्य सुरक्षा संगठनों के गुर्गों के साथ, ऐसा होने के लिए, वे एक और सुरक्षा उपाय लागू कर सकते हैं सत्यापित करें उन गुर्गों। यह सत्यापन अलग-अलग तरीकों से आ सकता है, इसमें शामिल ऑपरेटर्स के आधार पर। इंटरनेट पर संचार के मामले में, CORS वह तंत्र है जो ब्राउज़र को संसाधनों तक पहुंचने के लिए उपयोग करना संभव बनाता है जो कि वे मूल रूप से सक्षम नहीं होंगे क्योंकि संसाधन एक अलग मूल का है.

क्रॉस-ऑरिजनल रिसोर्स शेयरिंग (CORS) एक ऐसा तंत्र है जो अतिरिक्त HTTP हेडर का उपयोग करके ब्राउज़र को बताने के लिए एक मूल पर एक वेब एप्लिकेशन दे रहा है, एक अलग मूल से चयनित संसाधनों तक पहुंच.

मैंने एक से अधिक बार उत्पत्ति के बारे में बात की है, और आप शायद सोच रहे हैं कि इसका क्या मतलब है। एक मूल URL के प्रोटोकॉल, डोमेन और पोर्ट द्वारा परिभाषित किया गया है। जब आपके पास https://api.geekflare.com:3001 जैसे मूल स्थान पर आपका API है और https://geekflare.com पर आपका दृश्य, मूल अलग-अलग हैं। इस स्थिति में, आपको दोनों छोर पर संसाधनों तक पहुंचने में सक्षम होने के लिए कॉर्स की आवश्यकता होगी.

जब सर्वर से अनुरोध किया जाता है, तो ब्राउज़र (क्लाइंट) और सर्वर अनुरोध और प्रतिक्रिया भेजते हैं, HTTP हेडर शामिल होते हैं। इन हेडरों के बीच, ब्राउज़र को संचार को अवरुद्ध करने से रोकने के लिए अतिरिक्त हेडर शामिल किए गए हैं.

ब्राउज़र संचार को अवरुद्ध क्यों करेगा?

इसकी ब्राउज़र सुरक्षा सुविधाएँ। ऐसा तब होगा जब अनुरोध क्लाइंट से भिन्न मूल से आ रहा हो। कॉर्स के परिणामस्वरूप शामिल अतिरिक्त हेडर क्लाइंट को यह बताने का एक तरीका है कि वह उस प्रतिक्रिया का उपयोग कर सकता है जो उसे प्राप्त हुई थी.

कोर हेडर

सुरक्षित हेडर में से एक जो प्रतिक्रिया या अनुरोध हेडर हो सकता है.

रिस्पांस हेडर

ये हेडर हैं जो सर्वर इसकी प्रतिक्रिया में वापस भेजता है.

  • Access-Control-allow-Origin:: इसका उपयोग सर्वर पर संसाधन तक पहुँचने के लिए अनुमत मूल को निर्दिष्ट करने के लिए किया जाता है। यह निर्दिष्ट करना संभव है कि केवल एक विशिष्ट मूल से अनुरोधों की अनुमति है – प्रवेश-नियंत्रण-अनुमति-मूल: https://geekflare.com, या यह कि मूल कोई फर्क नहीं पड़ता – प्रवेश-नियंत्रण-अनुमति-उत्पत्ति: *.
  • एक्सेस-कंट्रोल-एक्सपोज-हेडर्स:: जैसा कि नाम से ही स्पष्ट है, यह उन हेडरों को सूचीबद्ध करता है जिनकी ब्राउजर तक पहुंच है.
  • एक्सेस-कंट्रोल-मैक्स-एज:: यह उस अवधि को इंगित करता है जिसके लिए प्रीफ़लाइट अनुरोध की प्रतिक्रिया को कैश किया जा सकता है.
  • पहुँच-नियंत्रण-अनुमति-क्रेडेंशियल:: यह इंगित करता है कि जब प्रारंभिक क्रेडेंशियल के साथ प्रारंभिक अनुरोध किया गया था, तो ब्राउज़र प्रतिक्रिया का उपयोग कर सकता है.
  • Access-Control-Allow-Methods:: यह उस विधि (एस) को इंगित करता है जो संसाधन तक पहुंचने का प्रयास करते समय अनुमति देता है.
  • Access-Control-Allow-Headers:: यह इंगित करता है कि HTTP हेडर का उपयोग अनुरोध में किया जा सकता है.

यहाँ एक उदाहरण है कि प्रतिक्रिया कैसी दिखेगी

HTTP / 1.1 204 कोई सामग्री नहीं
प्रवेश-नियंत्रण-अनुमति-उत्पत्ति: *
अभिगम-नियंत्रण-अनुमति-विधियाँ: GET, HEAD, PUT, PATCH, POST, DELETE
वैरी: एक्सेस-कंट्रोल-रिक्वेस्ट-हेडर्स
एक्सेस-कंट्रोल-अनुमति-हेडर्स: सामग्री-प्रकार, स्वीकार
सामग्री-लंबाई: 0
दिनांक: शनि, १६ नवंबर २०१ ९ 11:41:08 GMT + 1
कनेक्शन: जीवित रखें

अनुरोध हेड

यहां उन हेडर हैं जो कॉर्स तंत्र का उपयोग करने के लिए क्लाइंट के अनुरोध में होना चाहिए.

  • उत्पत्ति:: यह ग्राहक के अनुरोध के मूल को दर्शाता है। जब फ्रंटएंड और बैकएंड के साथ काम कर रहे हैं, जैसा कि पहले कहा गया है, तो यह आपके फ्रंटेंड एप्लिकेशन का मेजबान होगा.
  • एक्सेस-कंट्रोल-रिक्वेस्ट-मेथड:: इसका इस्तेमाल प्रीफ़लाइट रिक्वेस्ट में उस HTTP मेथड को दर्शाने के लिए किया जाता है, जिसका इस्तेमाल रिक्वेस्ट करने के लिए किया जाएगा.
  • एक्सेस-कंट्रोल-रिक्वेस्ट-हेडर्स:: इसका उपयोग HTTP हेडर को इंगित करने के लिए प्रीफ़लाइट रिक्वेस्ट में किया जाता है जिसका उपयोग अनुरोध करने के लिए किया जाएगा.

यहाँ एक उदाहरण है कि एक अनुरोध कैसा दिखेगा

कर्ल -i -X ​​विकल्प लोकलहोस्ट: 3001 / एपीआई \
-एच ‘एक्सेस-कंट्रोल-रिक्वेस्ट-मेथड: गेट’ ‘
-एच ‘एक्सेस-कंट्रोल-रिक्वेस्ट-हेडर्स: कंटेंट-टाइप, एक्सेप्ट’
-एच ‘उत्पत्ति: http: // localhost: 3000’

प्रीफ़लाइट अनुरोध

https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS

इधर-उधर के अनुरोधों का उल्लेख करने के बाद, संभवतः इसका क्या मतलब हो सकता है?

प्रीफ़लाइट अनुरोध तब होते हैं जब क्लाइंट को मुख्य अनुरोध से पहले प्रीफ़लाइट अनुरोध भेजना होता है। प्रीफ़्लाइट अनुरोध अधिक है जांच यह निर्धारित करने के लिए कि क्या सर्वर मुख्य अनुरोध का समर्थन करता है जिसके बारे में किया जाना है। जब सकारात्मक पुष्टि प्राप्त होती है, तब मुख्य अनुरोध भेजा जाता है.

जब कोई अनुरोध प्रीफ़लाइट अनुरोध नहीं होता है, तो इसे a कहा जाता है सरल अनुरोध.

कॉर्स को लागू करना

आप ज्यादातर अपने आवेदन के बैकएंड पर चीजें सेट करना चाहेंगे। कार्यान्वयन आपके द्वारा उपयोग किए जा रहे ढांचे पर निर्भर करता है। इस ट्यूटोरियल के लिए, हम NodeJS और रेल में इसे कैसे करें, इस पर ध्यान देंगे.

रेल

मेरा सुझाव है कि आप इसका उपयोग करें रैक CORS मणि। फिर आपको इसे अपने config / application.rb फ़ाइल में जोड़ना होगा.

config.middleware.insert_before 0, रैक :: कॉर्स करते हैं
अनुमति दें
मूल ‘*’
संसाधन ‘*’,
हेडर: किसी भी,
एक्सपोज़ करें:% i (एक्सेस-टोकन एक्सपायरी टोकन-टाइप यूआईडी क्लाइंट),
विधियाँ:% i (पोस्ट हटाओ पैच हटाओ विकल्प हेड),
प्रमाण: सत्य
समाप्त
समाप्त

NodeJS

Node.js में, यह इस तरह दिखेगा.

app.all (। * ’, (req, res, next) => {
res.header (der प्रवेश-नियंत्रण-अनुमति-उत्पत्ति ’,) *’);
res.header (-प्रवेश-नियंत्रण-अनुमति-विधियाँ ’, G PUT, GET, POST, DELETE, PATCH, OPTIONS HEAD’);
res.header (der एक्सेस-कंट्रोल-अनुमति-हेडर्स ’,) *’);
res.header (der प्रवेश-नियंत्रण-अनुमति-साख, सत्य);
आगे();
});

कोड स्निपेट में, हम मूल, तरीके, हेडर और क्रेडेंशियल्स सेट कर रहे हैं जिन्हें हमारे सर्वर पर उपलब्ध संसाधनों तक पहुंचने की अनुमति दी जानी चाहिए। आप चेकआउट भी कर सकते हैं Sqreen जो रूबी, पीएचपी, पायथन, जावा, गो, नोड.जेएस अनुप्रयोगों के साथ एकीकृत होने के लिए एक सुरक्षा हेडर मॉड्यूल प्रदान करता है। और Apache या Nginx में लागू करने के लिए, इस गाइड का संदर्भ लें.

निष्कर्ष

CORS नीति को शिथिल करता है ताकि आपका ब्राउज़र आपके इच्छित संसाधनों तक पहुँच सके। यह समझना कि यह क्या है, यह क्यों आवश्यक है, और इसे कैसे सेट किया जाए, इससे उन मुद्दों का पता लगाने में मदद मिलेगी जो आपके वेब अनुप्रयोगों का निर्माण करते समय आपके सामने आ सकते हैं।.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map