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 और Web Lock का ऐक्सेस पाने के लिए {indexedDB: true, locks:true} पास करें.

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

कुल समय

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

दायरा

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

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 के ऑरिजिन ट्रायल के लिए, register और अपने डोमेन के लिए टोकन पाएं. ज़्यादा जानकारी के लिए, ऑरिजिन ट्रायल का इस्तेमाल शुरू करना लेख पढ़ें. 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 फ़्लैग चालू होना चाहिए.

अन्य संसाधन