कोई डरावनी कुकी नहीं

कुकी सबसे नई होती हैं. इसलिए, यहां उन रेसिपी के बारे में बताएं जिनकी मदद से पुरानी कुकीज़ के बिना भी, इस डरावने सीज़न का आनंद लिया जा सकता है?

कुकीज़ सबसे नई होती हैं, तो ऐसी सबसे नई रेसिपी कौनसी हैं जिनसे आप पुरानी कुकीज़ के बिना भी इस डरावने सीज़न का आनंद ले सकते हैं?

हम वेब प्लैटफ़ॉर्म पर तीसरे पक्ष की कुकी का इस्तेमाल बंद करने की प्रक्रिया में हैं. क्रॉस-साइट ट्रैकिंग के काम में यह एक बड़ी उपलब्धि है, लेकिन यह काफ़ी लंबी यात्रा का हिस्सा है. आइए, एक नज़र डालते हैं कि हम कितनी दूर हैं और आने वाले समय में कौन-कौनसी चीज़ें होने वाली हैं...

सतह पर, कुकी एक आसान की-वैल्यू स्टोर उपलब्ध कराती हैं. इसे ब्राउज़र और सर्वर के बीच भेजा जाता है. इससे, साइट पर काम की सुविधाएं मिलती हैं. जैसे, प्राथमिकता सेव करना: theme=bats या साइन इन किए हुए उपयोगकर्ता के लिए सेशन आईडी सेव करना.

तीसरे पक्ष की कुकी में थीम=bats या fav_pumpkin=us-nic जैसी सामान्य वैल्यू होती है

अगर उस कुकी को उसी साइट पर इस्तेमाल किया जा रहा है जिस पर इसे सेट किया गया है, तो हम आम तौर पर उसे पहले-पक्ष की कुकी कहते हैं. अगर इसका इस्तेमाल, इसे सेट करने वाली साइट के बजाय किसी दूसरी साइट के हिस्से के रूप में किया जा रहा हो, तो इसे हम तीसरे पक्ष की कुकी कहते हैं. उदाहरण के लिए, अगर मैं उसी साइट पर जा रहा/रही हूं जिस पर इसे सेट किया गया है, तो मेरी theme=bats कुकी पहले-पक्ष की होगी. हालांकि, अगर उसे किसी अलग साइट के हिस्से के तौर पर iframe या अन्य क्रॉस-साइट रिसॉर्स में शामिल किया गया है, तो यह तीसरे पक्ष की कुकी होगी.

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

तीसरे पक्ष की कुकी में एक यूनीक आईडी होता है. इससे तीसरे पक्ष की साइट, वेब पर किसी उपयोगकर्ता को ट्रैक कर सकती है

डिफ़ॉल्ट रूप से, पहले-पक्ष की कुकी

हम इस दिशा में पहले ही कुछ और आगे बढ़ चुके हैं! ऐसा लगता था कि सिर्फ़ एक सादी कुकी सेट करनी है: theme=pumpkins सभी कॉन्टेक्स्ट में भेजा जाएगा: एक ही साइट या क्रॉस-साइट! ज़्यादातर साइटें सिर्फ़ यह चाहती हैं कि उनकी कुकी, एक ही साइट के हिसाब से भेजी जाएं. इसे कुकी पर मौजूद SameSite एट्रिब्यूट से कंट्रोल किया जा सकता है. उदाहरण के लिए:

Set-Cookie: theme=bats; SameSite=Lax

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

इसलिए, अब SameSite=Lax डिफ़ॉल्ट है. अगर आपने अभी theme=bats सेट किया है, तो इसे सिर्फ़ उसी साइट के लिए भेजा जाएगा.

SameSite=Lax वैल्यू की डिफ़ॉल्ट वैल्यू, तीसरे पक्ष में भेजी जाने वाली कुकी को रोकती है

अगर आपको कोई क्रॉस-साइट या तीसरे पक्ष की कुकी चाहिए (शायद आपको एम्बेड किए गए विजेट में थीम दिखानी हो), तो आपको यह जानकारी देनी होगी:

Set-Cookie: theme=bats; SameSite=None; Secure
साफ़ तौर पर दिखाई गई SameSite=None वैल्यू कुकी को क्रॉस-साइट कॉन्टेक्स्ट में भेजने के लिए मार्क करती है

यह ब्राउज़र को बताता है कि आपको किसी भी क्रॉस-साइट कॉन्टेक्स्ट में कुकी भेजनी है. हालांकि, हम यह चाहते हैं कि कुकी सिर्फ़ सुरक्षित कनेक्शन तक सीमित रहे.

पहले-पक्ष की स्वादिष्ट कुकी

डिफ़ॉल्ट तौर पर सेट की गई रेसिपी कुछ बेहतर हो गई है. अब भी आपके पास उस रेसिपी को बेहतर बनाने की जगह है. पेश है एक टेस्ट:

Set-Cookie:  __Host-theme=bats;
  Secure;
  Path=/;
  HttpOnly;
  Max-Age=7776000;
  SameSite=Lax;

इससे आपको पहले-पक्ष की ऐसी कुकी मिलेगी जो सिर्फ़ एक डोमेन तक सीमित रहेगी, सुरक्षित कनेक्शन होगी, JavaScript का ऐक्सेस नहीं होगा. यह पुरानी होने से पहले अपने-आप खत्म हो जाएगी और (बेशक!) सिर्फ़ उसी साइट के कॉन्टेक्स्ट में अनुमति दी जाती है.

CHIPS के साथ कुकीज़ का आनंद लें!

वेब के जादुई पहलुओं में से एक यह है कि एक साथ कई साइटें बनाई जा सकती हैं. मान लें कि मुझे एक मैप विजेट बनाना है, जिससे दूसरी साइटें सबसे अच्छे कद्दू पैच वाले टूर या ट्रिक-या-ट्रीटिंग रूट दिखा सकें. मेरी सेवा कुकी का इस्तेमाल करती है, ताकि उपयोगकर्ता रास्ते के बारे में अपनी प्रोग्रेस सेव कर सकें. समस्या यह है कि तीसरे पक्ष की वही कुकी कद्दू पैच वाली साइट पर भेजी जाएगी, जैसा कि ट्रिक-या ट्रीटिंग साइट पर भेजा जाता है. मैं साइटों के बीच उपयोगकर्ताओं को ट्रैक नहीं करना चाहता, लेकिन ब्राउज़र सिर्फ़ एक कुकी जार का इस्तेमाल करता है—मेरे लिए इस इस्तेमाल को अलग करने का कोई तरीका नहीं है!

SameSite=None के साथ क्रॉस-साइट कुकी=कोई भी नहीं एक शेयर कुकी जार में जाएगा

ऐसी स्थिति में कुकीज़ हैविंग इंडिपेंडेंट पार्टिशन्ड स्टेट या सीएचआईपीएस का प्रस्ताव सामने आता है. शेयर किए गए एक कुकी जार के बजाय, हर टॉप-लेवल साइट के लिए एक अलग और पार्टिशन किया गया कुकी जार होता है. साइटें अपनी कुकी पर Partitioned एट्रिब्यूट का इस्तेमाल करके, इसके लिए ऑप्ट-इन करेंगी.

Set-Cookie: __Host-route=123;
  SameSite=None;
  Secure;
  Path=/;
  Partitioned;
कुकी पर पार्टीशन किया गया एट्रिब्यूट, हर टॉप लेवल साइट के लिए अलग-अलग कुकी जार बनाता है

उस कुकी जार को शेयर करने के बजाय, हर किसी को अपना एक जार मिलता है! आसान, सुरक्षित, और ज़्यादा साफ़.

हमने अभी-अभी Chrome 109 में कुकी हैविंग इंडिपेंडेंट पार्टिशन्ड स्टेट (सीएचआईपीएस) के लिए शिप करने का इंटेंट भेजा है. इसका मतलब है कि ये दिसंबर में बीटा में टेस्ट करने के लिए उपलब्ध होंगी और फिर जनवरी 2023 में स्टेबल के लिए तैयार होंगी. अगर आपको अपनी साइट की कुकी रेसिपी को बेहतर बनाने के लिए नए साल की जानकारी चाहिए तो एक नज़र डालें और देखें कि क्या क्रॉस-साइट कुकी में सीएचआईपीएस जोड़ना शुरू किया जा सकता है!

पहले पक्ष के सेट का इस्तेमाल करके, पार्टी में कुकी को न्योता भेजें

डेवलपर के सुझाव, शिकायत या राय के बारे में, आप में से कई लोगों ने यह भी साफ़ तौर पर बताया कि ऐसी कई स्थितियां हैं जहां आप उन साइटों के बीच सेवाएं शेयर करते हैं जिन्हें आपने कंट्रोल किया है और चाहते हैं कि आप उन साइटों पर कुकी इस्तेमाल करें - लेकिन, उन्हें तीसरे पक्ष के सही कॉन्टेक्स्ट में न भेजें. उदाहरण के लिए, शायद आपके पास pretty-pumpkins.com और pretty-pumpkins.co.uk हैं. हो सकता है कि आपके सिस्टम पर कुकी पर आधारित सिंगल-साइन हो, जो इन सभी साइटों पर काम करता हो. सीएचआईपीएस काम नहीं करेगा, क्योंकि मुझे बस दोनों साइटों पर साइन-इन करना होगा. इसके लिए ज़रूरी है कि मुझे इन मिलती-जुलती साइटों में एक ही कुकी की ज़रूरत हो.

हम पहले पक्ष के सेट के प्रस्ताव पर काम कर रहे हैं, ताकि इसे संभव बनाया जा सके. हमने ऑरिजिन ट्रायल को पूरा किया और समुदाय में काफ़ी चर्चा की. इससे हमें एक नया वर्शन मिल गया, जिसका मकसद है:

  • संगठनों को ऐसी साइटों का ग्रुप तय करने का तरीका दें जो एक-दूसरे के लिए एक ही पक्ष की होनी चाहिए.
  • पहले पक्ष के सेट में मौजूद क्रॉस-साइट कुकी के ऐक्सेस का अनुरोध करने के लिए, Storage Access API का इस्तेमाल करें.
पहले पक्ष के सेट, शेयर किए गए कुकी जार को सिर्फ़ मिलती-जुलती साइटों के बीच अनुमति देते हैं

सभी कुकी अब भी अवन में बनती हैं, लेकिन जब आपके पास टेस्ट करने के लिए ज़्यादा विकल्प हों, तब पहले पक्ष के सेट डेवलपर गाइड देखें. अगर आपको चर्चा में हिस्सा लेना है, तो WICG/पहले पक्ष के सेट से जुड़ा सुझाव भी देखा जा सकता है.

अपनी कुकी को पुराना न होने दें!

हमारा लक्ष्य है कि 2024 के बीच से, Chrome में तीसरे पक्ष की कुकी के साथ काम करना बंद कर दिया जाए. अभी तैयारी करने का समय है, लेकिन आपको अभी से योजना बनाना शुरू कर देना चाहिए.

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

यह सिर्फ़ एक छोटी सी खास जानकारी है. जैसे-जैसे काम आगे बढ़ेगा, हम ज़्यादा खबरें और दिशा-निर्देश शेयर करते रहेंगे. अगर आपको कुछ पूछना है, कोई समस्या है या अपने काम के नतीजों को शेयर करना है, तो हमारे पास आपसे संपर्क करने के लिए कई रास्ते हैं.

याद रखें: कुकी स्वादिष्ट हो सकती हैं, लेकिन एक बार में सिर्फ़ कुछ कुकी ही मिलती हैं और किसी और की कुकी चुराने की कोशिश न करें!