SameSite कुकी के बारे में बताया गया

ब्राउज़र सहायता

  • Chrome: 51. अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
  • एज: 16. अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
  • Firefox: 60. अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
  • सफ़ारी: 13. अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है

सोर्स

हर कुकी में एक की-वैल्यू पेयर होता है. साथ ही, इसमें ऐसे कई एट्रिब्यूट होते हैं जो यह नीति कंट्रोल करती है कि उस कुकी का इस्तेमाल कब और कहां किया जाए.

SameSite एट्रिब्यूट के बारे में जानकारी (इसमें बताया गया है RFC6265bis) आपको यह एलान करने देता है कि आपकी कुकी पहले-पक्ष तक सीमित है या नहीं या एक ही साइट पर काम करता है. यह समझना मददगार है कि असल में 'site' किस बारे में है का मतलब यहां है. साइट, डोमेन सफ़िक्स और डोमेन का एक हिस्सा होती है से पहले. उदाहरण के लिए, www.web.dev डोमेन, web.dev साइट का हिस्सा है.

मुख्य शब्द: अगर उपयोगकर्ता www.web.dev पर है और किसी इमेज का अनुरोध करता है static.web.dev, वही साइट वाला अनुरोध.

सार्वजनिक सफ़िक्स सूची से पता चलता है कि किन पेजों को गिना जाता है एक ही साइट पर रहे हैं. यह सिर्फ़ टॉप लेवल डोमेन पर निर्भर नहीं करता, जैसे कि .com, हालांकि, इसमें github.io जैसी सेवाएं भी शामिल की जा सकती हैं. यह चालू करता है अलग-अलग साइटों के तौर पर गिने जाने के लिए your-project.github.io और my-project.github.io.

मुख्य शब्द: अगर उपयोगकर्ता your-project.github.io पर है और किसी इमेज का अनुरोध करता है my-project.github.io, जो एक अलग-अलग साइट के ज़रिए किया गया अनुरोध है.

कुकी के इस्तेमाल का एलान करने के लिए, SameSite एट्रिब्यूट का इस्तेमाल करें

कुकी पर मौजूद SameSite एट्रिब्यूट से, कुकी को कंट्रोल करने के तीन अलग-अलग तरीके मिलते हैं नहीं बदल सकता. आप चाहें, तो एट्रिब्यूट की जानकारी न देने का विकल्प चुना जा सकता है या Strict या Lax का इस्तेमाल करें, ताकि कुकी को एक ही साइट के अनुरोधों तक सीमित किया जा सके.

अगर आप SameSite को Strict पर सेट करते हैं, तो आपकी कुकी सिर्फ़ पहले पक्ष का कॉन्टेक्स्ट; इसका मतलब है कि अगर कुकी की साइट, दिखाई गई साइट से मेल खाती है पर जाएं. इसलिए, अगर promo_shown कुकी इस तरह सेट होती है:

Set-Cookie: promo_shown=1; SameSite=Strict

जब उपयोगकर्ता आपकी साइट पर होता है, तो कुकी को उम्मीद के मुताबिक अनुरोध के साथ भेजा जाता है. हालांकि, यदि उपयोगकर्ता आपकी साइट पर किसी अन्य लिंक से किसी लिंक का अनुसरण करता है, तो कुकी को आपके शुरुआती अनुरोध पर नहीं भेजा जाता है. यह उन सुविधाओं से जुड़ी कुकी के लिए अच्छा है जो हमेशा शुरुआती हिस्से में मौजूद होती हैं जैसे पासवर्ड बदलना या खरीदारी करना. हालांकि, ये चीज़ें भी होती हैं promo_shown जैसी कुकी के लिए पाबंदी. अगर आपका पाठक इस लिंक पर जाता है साइट में कुकी भेजना चाहते हैं, ताकि उनकी प्राथमिकता लागू की जा सके.

SameSite=Lax ब्राउज़र को इन टॉप लेवल वाली कुकी भेजने की अनुमति देता है नेविगेशन. उदाहरण के लिए, यदि कोई अन्य साइट आपकी साइट की सामग्री का संदर्भ देती है, तो अपनी बिल्ली की फ़ोटो का उपयोग करके और आपके लेख का लिंक अनुसरण करता है:

<p>Look at this amazing cat!</p>
<img src="https://blog.example/blog/img/amazing-cat.png" />
<p>Read the <a href="https://blog.example/blog/cat.html">article</a>.</p>

Lax पर सेट की गई कुकी को इस तरह सेट किया जाता है:

Set-Cookie: promo_shown=1; SameSite=Lax

जब ब्राउज़र किसी दूसरे व्यक्ति के ब्लॉग के लिए amazing-cat.png का अनुरोध करता है, तो साइट कुकी नहीं भेजती. हालांकि, जब पाठक लिंक cat.html से लिंक है, तो उस अनुरोध में कुकी शामिल है.

हम SameSite का इस्तेमाल इस तरह करने का सुझाव देते हैं कि वेबसाइट पर असर डालने वाली कुकी सेट करें Lax पर डिसप्ले और Strict के लिए उपयोगकर्ता की कार्रवाइयों से जुड़ी कुकी.

यह बताने के लिए कि आपको कुकी कोSameSiteNone उसे हर तरह के कॉन्टेक्स्ट में भेजा जा सकता है. अगर आप कोई ऐसी सेवा देते हैं जिसका इस्तेमाल अन्य साइटें करती हैं, जैसे कि विजेट, एम्बेड किया गया कॉन्टेंट, अफ़िलिएट प्रोग्राम, विज्ञापन या साइन इन करना तो आपका इंटेंट साफ़ तौर पर समझ में आ रहा है, यह पक्का करने के लिए None का इस्तेमाल करें.

कॉन्टेक्स्ट के आधार पर, तीन कुकी पर &#39;कोई नहीं&#39;, &#39;Lax&#39; या &#39;सख्त&#39; का लेबल होता है
कुकी के कॉन्टेक्स्ट को साफ़ तौर पर None, Lax या Strict के तौर पर मार्क करें.

SameSite के डिफ़ॉल्ट व्यवहार में बदलाव

ब्राउज़र सहायता

  • Chrome: 80. अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
  • एज: 86. अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
  • Firefox: किसी झंडे के पीछे.
  • Safari: समर्थित नहीं. अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है

SameSite एट्रिब्यूट का इस्तेमाल बड़े पैमाने पर किया जाता है. हालांकि, इसे ज़्यादा लोगों ने इस्तेमाल नहीं किया है. पहले, SameSite के बिना कुकी सेट करने पर डिफ़ॉल्ट तौर पर उन्हें भेजा जाता था जिससे उपयोगकर्ता सीएसआरएफ और अनजाने में असुरक्षित हो सकते हैं जानकारी लीक हुई. डेवलपर को अपना मकसद बताने के लिए बढ़ावा देना और उपयोगकर्ताओं को सुरक्षित अनुभव देना. जैसे, आईईटीएफ़ का प्रस्ताव, बेहतर कुकी दो अहम बदलावों की जानकारी देता है:

  • जिन कुकी में SameSite एट्रिब्यूट नहीं होता उन्हें SameSite=Lax माना जाता है.
  • SameSite=None वाली कुकी में Secure भी होना चाहिए, इसका मतलब है कि उनके लिए ये ज़रूरी हैं और सुरक्षित बन जाता है.

ये दोनों बदलाव उन ब्राउज़र के साथ पुराने सिस्टम के साथ काम करते हैं जिन पर सही तरीके से SameSite एट्रिब्यूट के पिछले वर्शन को लागू किया गया. साथ ही, ऐसे ब्राउज़र जो SameSite के पुराने वर्शन के साथ काम नहीं करते. उनका मकसद कम डेवलपर को भरोसा रखें, कुकी बनाने का डिफ़ॉल्ट तरीका साफ़ तौर पर बताया गया हो. कोई भी क्लाइंट जो आपकी कंपनी को नहीं पहचानता SameSite=None को इसे अनदेखा करना चाहिए.

डिफ़ॉल्ट रूप से SameSite=Lax

अगर आप कुकी के SameSite एट्रिब्यूट को तय किए बिना उसे भेजते हैं, तो ब्राउज़र उस कुकी को ऐसे समझेगा जैसे उसे SameSite=Lax पर सेट किया गया हो. हमारा सुझाव अब भी है साफ़ तौर पर SameSite=Lax को सेट किया गया है, ताकि आपके उपयोगकर्ता अनुभव को एक जैसा बनाया जा सके ट्रैक करें.

SameSite=None सुरक्षित होना चाहिए

SameSite=None का इस्तेमाल करके क्रॉस-साइट कुकी बनाने पर, आपको उन्हें भी सेट करना होगा Secure तक करें, ताकि ब्राउज़र इन्हें स्वीकार कर सके:

Set-Cookie: widget_session=abc123; SameSite=None; Secure

आप को चालू करके Chrome 76 के हिसाब से इस व्यवहार की जांच कर सकते हैं about://flags/#cookies-without-same-site-must-be-secure और Firefox 69 से network.cookie.sameSite.noneRequiresSecure को इसमें सेट करके about:config.

हमारा सुझाव है कि जल्द से जल्द मौजूदा कुकी को Secure पर अपडेट करें. अगर आप अपनी साइट पर तीसरे पक्ष का कॉन्टेंट उपलब्ध कराने वाली सेवाओं का इस्तेमाल करते हैं, तो पक्का करें कि आपका सेवा देने वाला अपनी कुकी अपडेट करता है और कोई भी स्निपेट या निर्भर करता है कि आपकी साइट नए व्यवहार का इस्तेमाल करती है या नहीं.

इन शर्तों को पूरा करने के लिए, कुकी को अपडेट करने के बारे में ज़्यादा जानकारी पाएं SameSite=None में हुए बदलावों और ब्राउज़र के व्यवहार में अंतर के बारे में जानने के लिए, फ़ॉलो अप लेख, SameSite कुकी बनाने की रेसिपी.

लिली चेन, माल्टे यूबीएल, माइक के योगदान और राय देने के लिए धन्यवाद वेस्ट, रॉब डॉडसन, टॉम स्टाइनर, और विवेक शेखर.

कुकी हीरो की इमेज पिल-रिन प्रिस्के तारीख अनस्प्लैश