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 में, जब ऑरिजिन एक ही मिलती-जुलती वेबसाइट के सेट (पहले पक्ष के सेट का नया नाम RWS) में होता है, तो कोई प्रॉम्प्ट नहीं दिखता. जो ऑरिजिन एक ही आरडब्ल्यूएस का हिस्सा नहीं हैं उन पर Chrome में Storage Access API से जुड़ी ज़रूरी शर्तें लागू होंगी.

कुल समय

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

दायरा

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

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

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

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

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

  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 Non-Cookie Storage GitHub डेटा स्टोर करने की जगह में सुझाव/राय दें या शिकायत करें. इसके अलावा, अगर आपको कोई समस्या आती है, तो उसके बारे में भी बताएं.

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

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

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

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

अन्य संसाधन