ब्राउज़र सहायता
- अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
- अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
- अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
- अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
हर कुकी में एक की-वैल्यू पेयर होता है. साथ ही, इसमें ऐसे कई एट्रिब्यूट होते हैं जो यह नीति कंट्रोल करती है कि उस कुकी का इस्तेमाल कब और कहां किया जाए.
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
के लिए उपयोगकर्ता की कार्रवाइयों से जुड़ी कुकी.
यह बताने के लिए कि आपको कुकी कोSameSite
None
उसे हर तरह के कॉन्टेक्स्ट में भेजा जा सकता है. अगर आप कोई ऐसी सेवा देते हैं जिसका इस्तेमाल अन्य साइटें करती हैं, जैसे कि
विजेट, एम्बेड किया गया कॉन्टेंट, अफ़िलिएट प्रोग्राम, विज्ञापन या साइन इन करना
तो आपका इंटेंट साफ़ तौर पर समझ में आ रहा है, यह पक्का करने के लिए None
का इस्तेमाल करें.
SameSite के डिफ़ॉल्ट व्यवहार में बदलाव
ब्राउज़र सहायता
- अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
- अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
- अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
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
रेसिपी
इन शर्तों को पूरा करने के लिए, कुकी को अपडेट करने के बारे में ज़्यादा जानकारी पाएं
SameSite=None
में हुए बदलावों और ब्राउज़र के व्यवहार में अंतर के बारे में जानने के लिए,
फ़ॉलो अप लेख, SameSite कुकी बनाने की रेसिपी.
लिली चेन, माल्टे यूबीएल, माइक के योगदान और राय देने के लिए धन्यवाद वेस्ट, रॉब डॉडसन, टॉम स्टाइनर, और विवेक शेखर.
कुकी हीरो की इमेज पिल-रिन प्रिस्के तारीख अनस्प्लैश