http - ब्राउज़र कुकी डोमेन कैसे काम करते हैं?




cookies path (6)

अजीब डोमेन / सबडोमेन कुकी मुद्दों के कारण जो मुझे मिल रहा है, मैं जानना चाहता हूं कि ब्राउजर कुकीज़ कैसे संभालते हैं। यदि वे इसे विभिन्न तरीकों से करते हैं, तो अंतरों को जानना भी अच्छा होगा।

दूसरे शब्दों में - जब एक ब्राउज़र को कुकी प्राप्त होती है, तो उस कुकी के पास एक डोमेन और एक पथ संलग्न हो सकता है। या नहीं, इस मामले में ब्राउज़र शायद उनके लिए कुछ चूक को प्रतिस्थापित करता है। प्रश्न 1: वे क्या हैं?

बाद में, जब ब्राउज़र अनुरोध करने जा रहा है, तो यह उसकी कुकीज़ की जांच करता है और उन अनुरोधों को फ़िल्टर करता है जिन्हें उसे उस अनुरोध के लिए भेजना चाहिए। यह अनुरोध पथ और डोमेन के खिलाफ मिलान करके ऐसा करता है। प्रश्न 2: मिलान नियम क्या हैं?

जोड़ा गया:

कारण मैं यह पूछ रहा हूं क्योंकि मुझे कुछ किनारे के मामलों में दिलचस्पी है। पसंद:

  • .example.com लिए .example.com लिए एक कुकी उपलब्ध होगी?
  • example.com लिए .example.com लिए एक कुकी उपलब्ध होगी?
  • example.com लिए एक कुकी www.example.com लिए उपलब्ध होगी?
  • example.com लिए एक कुकी anotherexample.com लिए उपलब्ध anotherexample.com ?
  • क्या www.example.com example.com लिए कुकी सेट करने में सक्षम होगा?
  • क्या www.example.com www2.example.com लिए कुकी सेट करने में सक्षम होगा?
  • www.example.com .com लिए कुकी सेट करने में सक्षम हो जाएगा?
  • आदि।

जोड़ा गया 2:

साथ ही, कोई सुझाव दे सकता है कि मुझे कुकी कैसे सेट करनी चाहिए ताकि:

  • इसे या तो www.example.com या example.com द्वारा सेट किया जा सकता है;
  • यह www.example.com और example.com दोनों द्वारा सुलभ है।

www.example.com .com लिए कुकी सेट करने में सक्षम हो जाएगा?

नहीं, लेकिन example.com.fr example2.com.fr लिए कुकी सेट करने में सक्षम हो सकता है। फ़ायरफ़ॉक्स टीएलडी की सूची बनाए रखकर इसके खिलाफ सुरक्षा करता है: http://securitylabs.websense.com/content/Blogs/3108.aspx

स्पष्ट रूप से इंटरनेट एक्सप्लोरर दो-अक्षर डोमेन को कुकीज़ सेट करने की अनुमति नहीं देता है, जो मुझे लगता है कि o2.ie बस o2.ie रीडायरेक्ट क्यों o2online.ie । मैं अक्सर यह सोचता था।


आरएफसी वास्तविकता को प्रतिबिंबित नहीं करने के लिए जाने जाते हैं।

बेहतर चेक draft-ietf-httpstate-cookie , प्रगति पर काम करते हैं।


ऐसे नियम हैं जो यह निर्धारित करते हैं कि कोई ब्राउज़र सेट-हेडर प्रतिक्रिया शीर्षलेख (सर्वर-साइड कुकी लेखन) स्वीकार करेगा, जावास्क्रिप्ट का उपयोग करके कुकी सेट के लिए थोड़ा अलग नियम / व्याख्याएं (मैंने वीबीस्क्रिप्ट का परीक्षण नहीं किया है)।

फिर ऐसे नियम हैं जो यह निर्धारित करते हैं कि ब्राउज़र पृष्ठ अनुरोध के साथ एक कुकी भेज देगा या नहीं।

प्रमुख ब्राउज़र इंजनों के बीच मतभेद हैं कि डोमेन मैचों को कैसे प्रबंधित किया जाता है, और पथ मानों में पैरामीटर का अर्थ कैसे दिया जाता है। आप आलेख में कुछ अनुभवजन्य सबूत पा सकते हैं कि अलग-अलग ब्राउज़र्स अलग-अलग कुकीज़ कैसे संभालते हैं


कुकीज़ को अस्वीकार करने के बारे में धारा 3.3.2 पढ़ने के लिए मुझे आश्चर्य हुआ:

http://tools.ietf.org/html/rfc2965

यह कहता है कि ब्राउज़र को xyzcom से डोमेन .z.com के साथ एक कुकी को अस्वीकार कर देना चाहिए, क्योंकि 'xy' में एक डॉट होता है। इसलिए, जब तक कि मैं आरएफसी और / या उपर्युक्त प्रश्नों की गलत व्याख्या नहीं कर रहा हूं, तब तक प्रश्न जोड़े जा सकते हैं:

Www.exyy.example.com के लिए .example.com के लिए एक कुकी उपलब्ध होगी? नहीं।

मूल सर्वर www.yyy.example.com द्वारा सेट की गई कुकी, डोमेन .example.com के साथ सेट की जाएगी, क्या यह उपयोगकर्ता एजेंट द्वारा xxx.example.com पर भेजा गया मान है? नहीं।


यद्यपि आरएफसी 2 9 65 ( Set-Cookie2 , पहले ही अप्रचलित आरएफसी 210 9 था ) जिसे आजकल कुकी को परिभाषित करना चाहिए , अधिकांश ब्राउज़र पूरी तरह से इसका समर्थन नहीं करते हैं बल्कि नेटस्केप द्वारा मूल विनिर्देश का पालन करते हैं।

डोमेन विशेषता मान और प्रभावी डोमेन के बीच एक अंतर है: पूर्व को Set-Cookie हेडर फ़ील्ड से लिया जाता है और बाद में उस विशेषता मान की व्याख्या होती है। आरएफसी 2 9 65 के अनुसार, निम्नलिखित लागू होना चाहिए:

  • यदि सेट-कुकी हेडर फ़ील्ड में डोमेन विशेषता नहीं है, तो प्रभावी डोमेन अनुरोध का डोमेन है।
  • यदि कोई डोमेन विशेषता मौजूद है, तो इसका मान प्रभावी डोमेन के रूप में उपयोग किया जाएगा (यदि मान ए के साथ शुरू नहीं होता है . यह क्लाइंट द्वारा जोड़ा जाएगा)।

प्रभावी डोमेन होने पर इसे मौजूदा अनुरोधित डोमेन को सेट करने के लिए domain-match करना होगा; अन्यथा कुकी संशोधित की जाएगी। अनुरोध में भेजे जाने वाले कुकीज़ को चुनने के लिए एक ही नियम लागू होता है।

इस ज्ञान को अपने प्रश्नों पर मैप करना, निम्नलिखित लागू होना चाहिए:

  • Domain=.example.com साथ कुकी www.example.com के लिए उपलब्ध होगी
  • Domain=.example.com साथ कुकी example.com के लिए उपलब्ध होगी
  • Domain=example.com साथ कुकी को .example.com परिवर्तित कर दिया जाएगा और इस प्रकार www.example.com के लिए भी उपलब्ध होगा
  • Domain=example.com साथ कुकी anotherexample.com के लिए उपलब्ध नहीं होगी
  • www.example.com example.com के लिए कुकी सेट करने में सक्षम हो जाएगा
  • www.example.com www2.example.com के लिए कुकी सेट करने में सक्षम नहीं होगा
  • www.example.com .com के लिए कुकी सेट करने में सक्षम नहीं होगा

और www.example.com और example.com के लिए कुकी को सेट और पढ़ने के लिए, इसे क्रमशः .www.example.com और .example.com सेट करें। लेकिन पहला ( .www.example.com ) केवल उस डोमेन के नीचे अन्य डोमेन के लिए पहुंच योग्य होगा (उदाहरण के लिए foo.www.example.com या bar.www.example.com ) जहां .example.com को किसी भी द्वारा एक्सेस किया जा सकता है example.com के नीचे अन्य डोमेन (उदाहरण के लिए foo.example.com या bar.example.com )।


व्यापक कवरेज के लिए आरएफसी 2 9 65 की सामग्री की समीक्षा करें। बेशक इसका मतलब यह नहीं है कि सभी ब्राउज़र बिल्कुल वही व्यवहार करते हैं।

हालांकि सामान्य रूप से डिफ़ॉल्ट पथ के लिए नियम यदि कुकी में निर्दिष्ट कोई भी यूआरएल में पथ है जिससे सेट-कुकी हेडर पहुंचा। इसी प्रकार डोमेन के लिए डिफ़ॉल्ट यूआरएल में पूर्ण होस्ट नाम है जिसमें से सेट-कुकी पहुंची।

डोमेन के लिए मिलान नियमों को होस्ट डोमेन से होस्ट करने के लिए कुकी डोमेन की आवश्यकता होती है जिस पर अनुरोध किया जा रहा है। कुकी * शामिल करके एक व्यापक डोमेन मैच निर्दिष्ट कर सकते हैं। सेट-कुकी के डोमेन विशेषता में (यह वह क्षेत्र है जहां ब्राउज़र भिन्न हो सकते हैं)। पथ मिलान (डोमेन मिलान मानते हुए) एक साधारण बात है कि अनुरोधित पथ कुकी पर निर्दिष्ट पथ के अंदर होना चाहिए। आम तौर पर सत्र कुकीज़ पथ = / या पथ = / applicationName के साथ सेट की जाती हैं / इसलिए कुकी एप्लिकेशन में सभी अनुरोधों के लिए उपलब्ध है।

जोड़ा गया प्रतिक्रिया:

  • Www.example.com के लिए .example.com के लिए एक कुकी उपलब्ध होगी? हाँ
  • Example.com के लिए .example.com के लिए एक कुकी उपलब्ध होगी? पता नहीं
  • उदाहरण के लिए एक कुकी www.example.com के लिए उपलब्ध होगी? लेकिन नहीं होना चाहिए ... *
  • Example.com के लिए एक कुकी anotherexample.com के लिए उपलब्ध होगी? नहीं
  • क्या www.example.com example.com के लिए कुकी सेट करने में सक्षम होगा? हाँ
  • क्या www.example.com www2.example.com के लिए कुकी सेट करने में सक्षम होगा? नहीं (.example.com के माध्यम से छोड़कर)
  • Www.example.com .com के लिए कुकी सेट करने में सक्षम हो जाएगा? नहीं (इस नाम को उच्च स्थान पर सेट नहीं किया जा सकता है और न ही आप .co.uk जैसे किसी चीज़ के लिए सेट कर सकते हैं)

* मैं अभी इस परीक्षण का परीक्षण करने में असमर्थ हूं लेकिन मेरे पास एक स्याही है कि कम से कम IE7 / 6 पथ example.com इलाज करेगा जैसे कि यह .example.com





rules