2010-08-25 6 views
5

दो डोमेन रहे हैं। अब a.example.com और example.comtest_cookie नाम की एक कुकी लिख सकता है। अब हमारे पास a.example.com का एक पृष्ठ है जो कुकी test_cookie के मान को पढ़ने के लिए जावास्क्रिप्ट का उपयोग करेगा। क्या कोई ऐसा तरीका है जो डोमेन पर के बजाय के बजाय कुकी सेट को केवल के बजाय पढ़ा गया है?क्या मैं केवल दूसरे स्तर के डोमेन से कुकी प्राप्त कर सकता हूं? <em>a.example.com</em> <em>example.com</em></p> <p><em>example.com</em><em>a.example.com</em> के मुख्य डोमेन है:


हो सकता है कि मेरे सवाल का एक छोटे से स्पष्ट नहीं था,

लक्ष्य मैं हासिल करना चाहते हैं: 1. मैं readCookie नाम के एक समारोह लिखने के नाम test_cookie साथ कुकी पढ़ना चाहते हैं जो : ए। जब वहाँ एक कुकी है: test_cookie डोमेन example.com और कोई कुकी test_cookie डोमेन a.example.com के तहत के तहत, readCookie रिटर्न अशक्त ज। जब वहाँ एक कुकी है: test_cookie डोमेन के तहत example.com और यह भी एक कुकी test_cookie डोमेन के तहतa.example.com, readCookie डोमेन a.example.com सी के तहत कुकी मान देता है। जब कोई कुकी वहाँ: test_cookieतहत exampler.com, लेकिन वहाँ एक कुकी test_cookie डोमेन a.example.com किया जा रहा है, readCookie डोमेन a.example.com तहत कुकी मान देता है।

उत्तर

3

example.com पर कुकी को सीमित करना संभव नहीं है - केवल domain पैरामीटर सेट करके। हालांकि, अधिकांश ब्राउज़रों में, कुकी example.com पर डिफ़ॉल्ट होगी - केवल domain की आपूर्ति नहीं की जाती है। दुर्भाग्यवश आईई में यह सबडोमेन को कुकी तक पहुंचने की अनुमति देने के लिए डिफ़ॉल्ट है।

यही कारण है कि आपने अपनी मुख्य साइट www.example.com पर रखी है और न केवल example.com पर। मुख्य डोमेन example.com पर किसी साइट के साथ आप विश्वसनीय रूप से अपनी कुकीज़ को अलग नहीं रख सकते हैं।

9

कि कैसे कुकी परिभाषित किया गया था पर निर्भर करता है, खासकर अगर डोमेन विशेषता निर्दिष्ट किया जाता है कौन-से मान यह है (RFC 2965 – User Agent Role देखें):

  • अगर डोमेन विशेषता अनुपलब्ध है, उपयोगकर्ता एजेंट मान लिया गया है वर्तमान मेजबान; अन्यथा
  • अगर डोमेन विशेषता सेट किया गया है, अपने मूल्य एक ..example.com तरह से प्रारंभ होना चाहिए (यदि नहीं, उदा example.com, यह उपयोगकर्ता एजेंट द्वारा .example.com करने के लिए बदल जाएगा)।

अब कुकीज़ के डोमेन को domain-match अनुरोध के भीतर भेजने के लिए एक डोमेन होना चाहिए। और वह मामला है:

  • यदि या तो डोमेन समान हैं (मामले में डोमेन पैरामीटर नहीं था), या
  • अगर डोमेन विशेषता में निर्दिष्ट मूल्य का एक प्रत्यय होना चाहिए डोमेन।

इसका मतलब है कि:

effective domain | example.com | a.example.com | foo.example.com | bar.a.example.com 
------------------+-------------+---------------+-----------------+------------------- 
     example.com |  ✓  |  ✗  |  ✗  |   ✗ 
    a.example.com |  ✗  |  ✓  |  ✗  |   ✗ 
    .example.com |  ✓  |  ✓  |  ✓  |   ✓ 
    .a.example.com |  ✗  |  ✓  |  ✗  |   ✓ 

तो अगर आप चाहते हैं कि एक कुकी के लिए ही a.example.com मान्य हो, आप या तो छोड़ डोमेन विशेषता या आप डोमेन निर्दिष्ट.a.example.com के साथ विशेषता (जो कुकी को a.example.com के साथ-साथ इसके सबडोमेन के लिए मान्य करेगी)।

संबंधित मुद्दे