Storage Access API की मदद से, बिना कुकी वाले स्टोरेज के ऐक्सेस के लिए ऑरिजिन ट्रायल में हिस्सा लेना

Helen Cho
Helen Cho
Ari Chivukula
Ari Chivukula

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

जिन साइटों को तीसरे पक्ष के स्टोरेज को बांटने की सुविधा लागू करने का समय नहीं मिला है वे बंद होने से पहले आज़माने की सुविधा का इस्तेमाल करके, कुछ समय के लिए स्टोरेज को बांटने की सुविधा बंद कर सकती हैं. इसके लिए, वे एक ही ऑरिजिन की नीति के तहत आइसोलेशन जारी रखें, लेकिन टॉप-लेवल साइट के हिसाब से आइसोलेशन हटा दें. साथ ही, अपनी साइट पर एम्बेड किए गए कॉन्टेंट में स्टोरेज, सेवा वर्कर, और कम्यूनिकेशन एपीआई के पुराने व्यवहार को वापस लाएं. इस सुविधा को बंद करने के लिए, 3 सितंबर, 2024 को Chrome 127 रिलीज़ होने के साथ ही, इस सुविधा को आज़माने की अवधि खत्म हो जाएगी. ध्यान दें कि यह तीसरे पक्ष की कुकी को ऐक्सेस करने के लिए, बंद की जा चुकी कुकी को कुछ समय के लिए इस्तेमाल करने वाले ट्रायल से अलग है: यह सिर्फ़ स्टोरेज को ऐक्सेस करने के लिए है.

तीसरे पक्ष के स्टोरेज के पार्टीशन में कुकी के अलावा अन्य डेटा को सेव करने की सुविधा की वजह से, कुछ खास इस्तेमाल के उदाहरणों में रुकावट आ रही है. इसे ठीक करने के लिए, Chrome तीसरे पक्षों को स्टोरेज ऐक्सेस एपीआई (Chrome 117 के तौर पर शिपिंग) की मदद से, स्टोरेज/कम्यूनिकेशन ऐक्सेस (कुकी और नॉन-कुकी, दोनों) का अनुरोध करने का सुझाव दे रहा है. इस एपीआई की मदद से, तीसरे पक्ष पहले से ही कुकी ऐक्सेस का अनुरोध कर सकते हैं.

Chrome 120 से, यह प्रस्ताव एक्सपेरिमेंट के तौर पर उपलब्ध होगा. इसके लिए, ऑरिजिन ट्रायल की सुविधा का इस्तेमाल किया जाएगा. डेवलपर को इस ऑरिजिन ट्रायल में हिस्सा लेना चाहिए, ताकि यह पता लगाया जा सके कि सुझाया गया समाधान, उनके इस्तेमाल के उदाहरणों को कैसे हल करता है. इससे यह पक्का किया जा सकेगा कि वे ट्रायल के खत्म होने से पहले तैयार हैं.

ऑरिजिन ट्रायल की जानकारी

Chrome 120 से, Chrome में ऑरिजिन ट्रायल, StorageAccessAPIBeyondCookies की सुविधा काम करेगी. इससे Storage Access API (पिछले वर्शन के साथ काम करता है) के प्रस्तावित एक्सटेंशन को चालू किया जा सकेगा. इससे तीसरे पक्ष के संदर्भ में, बिना बंटवारे वाले स्टोरेज (कुकी और बिना कुकी वाला स्टोरेज) को ऐक्सेस करने की अनुमति मिल सकेगी.

यांत्रिकी

एपीआई का इस्तेमाल इस तरह किया जा सकता है (एम्बेड किए गए iframe में चलने वाला JavaScript):

// Request a new storage handle via rSA (this should prompt the user)
const handle = await document.requestStorageAccess({all: true});
// Write some 1P context sessionStorage
handle.sessionStorage.setItem('userid', '1234');
// Write some 1P context localStorage
handle.localStorage.setItem('preference', 'A');
// Open or create an indexedDB that is shared with the 1P context
const messageDB = handle.indexedDB.open('messages');
// Use locks shared with the 1P context
await handle.locks.request('example', ...);

अगर आपको all के बजाय सिर्फ़ किसी खास एपीआई का ऐक्सेस चाहिए, तो सिर्फ़ उन एपीआई हैंडल के नाम पास करें जिनका आपको ऐक्सेस चाहिए. उदाहरण के लिए, सिर्फ़ सेशन स्टोरेज का ऐक्सेस पाने के लिए {sessionStorage: true} या IndexedDB और वेब लॉक का ऐक्सेस पाने के लिए {indexedDB: true, locks:true} पास किया जा सकता है.

इस अतिरिक्त एक्सटेंशन को कॉल करने के अलावा, नॉन-कुकी स्टोरेज का ऐक्सेस, Storage Access API के ज़रिए कुकी ऐक्सेस करने की मौजूदा ज़रूरी शर्तों से मेल खाएगा. उदाहरण के लिए, Chrome में कोई प्रॉम्प्ट तब नहीं दिखाया जाता, जब ऑरिजिन एक ही मिलती-जुलती वेबसाइट सेट (आरडब्ल्यूएस, पहले पक्ष के सेट का नया नाम) में हों. ऐसे ऑरिजिन जो एक ही आरडब्ल्यूएस का हिस्सा नहीं हैं उन पर Chrome में स्टोरेज ऐक्सेस एपीआई के लिए, प्रॉम्प्ट करने की ज़रूरी शर्तें लागू होंगी.

कुल समय

ऑरिजिन ट्रायल, Chrome 120 से लेकर Chrome 125 तक या 6 अगस्त, 2024 के बाद किसी भी माइलस्टोन तक उपलब्ध होगा.

दायरा

Chrome 120 में सिर्फ़ डीओएम स्टोरेज (सेशन और लोकल स्टोरेज), इंडेक्स किया गया डीबी, और वेब लॉक उपलब्ध हैं.

Chrome 121 में कैश स्टोरेज, ऑरिजिन प्राइवेट फ़ाइल सिस्टम, कोटा, ब्लॉब स्टोरेज, और ब्रॉडकास्ट चैनल जोड़े गए थे.

Chrome 123 में, शेयर किए गए वर्कर्स और कुकी शामिल करने पर कंट्रोल जोड़ा गया था.

अगर Chrome 120 के बाद, वर्कर्स बनाने से पहले requestStorageAccess को कॉल किया गया था, तो डेडिकेटेड वर्कर्स को बिना बंटवारे वाली कुकी का ऐक्सेस इनहेरिट हो जाता है. इसके लिए, Storage Access API हैंडल का इस्तेमाल करने की ज़रूरत नहीं होती.

हमसे जुड़ने का तरीका

  1. यह आकलन करें कि तीसरे पक्ष के संदर्भ में, कुकी और कुकी के अलावा स्टोरेज के अन्य तरीकों का इस्तेमाल कैसे किया जाता है. इस्तेमाल के उदाहरणों से यह समझने में मदद मिल सकती है कि यह प्रस्ताव आपकी ज़रूरतों के हिसाब से है या नहीं.
  2. Chrome का वर्शन 120 (या इसके बाद का वर्शन) लॉन्च करें और पक्का करें कि test-third-party-cookie-phaseout फ़्लैग चालू हो.
  3. अगर आपको ऑरिजिन ट्रायल टोकन सेट अप किए बिना, स्थानीय तौर पर इस सुविधा को टेस्ट करना है, तो अपने ब्राउज़र में #enable-experimental-web-platform-features को चालू करें.
    1. स्थानीय तौर पर टेस्ट करने के बाद, StorageAccessAPIBeyondCookies के ऑरिजिन ट्रायल के लिए रजिस्टर किया जा सकता है. साथ ही, अपने डोमेन के लिए टोकन भी पाया जा सकता है. ज़्यादा जानकारी के लिए, ऑरिजिन ट्रायल का इस्तेमाल शुरू करना लेख पढ़ें. Chrome के ऑरिजिन ट्रायल से जुड़ी समस्या हल करने की गाइड में, एक पूरी चेकलिस्ट दी गई है. इससे यह पक्का किया जा सकता है कि आपका टोकन सही तरीके से कॉन्फ़िगर किया गया है.
    2. उस ऑरिजिन ट्रायल टोकन को उस iframe में एम्बेड करें जिसमें आपको Storage Access API हैंडल का इस्तेमाल करना है. इसके लिए, एचटीटीपी हेडर, एचटीएमएल मेटा टैग या प्रोग्राम के हिसाब से का इस्तेमाल करें. ध्यान दें कि इस एपीआई का इस्तेमाल करने वाले किसी भी फ़्रेम को टोकन एम्बेड करना होगा. पैरंट फ़्रेम में टोकन एम्बेड करने से, चाइल्ड फ़्रेम में एपीआई चालू नहीं होगा.
  4. क्रॉस-साइट iframe में Storage Access API हैंडल पाने के लिए, document.requestStorageAccess(...) को कॉल करें. इस कॉल को पूरा करने से जुड़ी ज़रूरी शर्तों के बारे में जानने के लिए, Storage Access API से जुड़ा दस्तावेज़ देखें.
  5. अगर Storage Access API हैंडल उपलब्ध है, तो उसका इस्तेमाल करने के लिए अपने iframe में मौजूद स्टोरेज को माइग्रेट करें. उदाहरण के लिए, window.sessionStorage.setItem(...) के कॉल handle.sessionStorage.setItem(...) हो जाते हैं.
  6. अपनी वेबसाइट खोलें और पुष्टि करें कि स्टोरेज ऐक्सेस हैंडल सही तरीके से काम कर रहा है.
  7. ऑरिजिन ट्रायल में हिस्सा लेना बंद करने के लिए, तीसरे चरण में जोड़ा गया टोकन हटाएं.
  8. Storage Access API के बिना कुकी वाले स्टोरेज की GitHub रिपॉज़िटरी पर सुझाव, शिकायत या राय सबमिट करें या किसी भी समस्या के बारे में बताएं.

डेमो: बिना बंटे हुए लोकल स्टोरेज को ऐक्सेस करने के लिए, Storage Access API का इस्तेमाल करना

इस डेमो में, Storage Access API का इस्तेमाल करके, तीसरे पक्ष के iframe से बिना बंटे हुए ब्रॉडकास्ट चैनलों को ऐक्सेस करने का तरीका बताया गया है:

https://saa-beyond-cookies.glitch.me/

डेमो देखने के लिए, Chrome 121 या उसके बाद का वर्शन होना चाहिए. साथ ही, test-third-party-cookie-phaseout फ़्लैग चालू होना चाहिए.

अन्य संसाधन