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

Helen Cho
Helen Cho
Ari Chivukula
Ari Chivukula

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

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

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

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

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

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

यांत्रिकी

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

// 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 Locks का ऐक्सेस पाने के लिए {indexedDB: true, locks:true} को पास किया जा सकता है.

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

कुल समय

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

स्कोप

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

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

शेयर किए गए वर्कर और कुकी शामिल करने का कंट्रोल, 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 non-Cookie Storage GitHub रिपॉज़िटरी में, हमें अपने सुझाव/राय दें या शिकायत करें.

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

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

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

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

अन्य संसाधन