Storage Access API üzerinden çerez dışı depolama erişimi için kaynak denemesine katılma

Helen Cho
Helen Cho
Ari Chivukula
Ari Chivukula

Chrome 115, üçüncü taraf bağlamlarında bölümlere ayırarak depolama alanı, hizmet çalışanları ve iletişim API'lerinde değişiklikler sağladı. Aynı kaynak politikası tarafından izole olmanın yanı sıra üçüncü taraf bağlamlarında kullanılan etkilenen API'ler, üst düzey bağlamın sitesi tarafından da izole edilir.

Üçüncü taraf depolama alanı bölümlendirme desteği uygulamaya vakti olmayan siteler, sonlandırma denemesinde geçici olarak bölümlendirmeye katılabilir (aynı kaynak politikasıyla izolasyonu devam ettirebilir, ancak üst düzey site tarafından yalıtımı kaldırabilir) ve depolama, hizmet çalışanları ve iletişim API'lerinin önceki davranışlarını kendi sitelerine yerleştirilmiş içeriklere geri yükleyebilir. Sonlanan özellik denemesinin süresi, 3 Eylül 2024'te Chrome 127'nin kullanıma sunulmasıyla birlikte sona erecek. Bunun, üçüncü taraf çerezlerine erişim için desteği sonlandırma denemesinden ayrı olduğunu unutmayın. Bu deneme, yalnızca depolama alanına erişim içindir.

Chrome, üçüncü taraflarca çerez olmayan depolama bölümlendirmesi nedeniyle kesintiye uğrayan belirli kullanım alanlarını ele almaya yönelik uzun vadeli bir çözüm olarak üçüncü tarafların, üçüncü tarafların çerez erişimi istemesine izin veren Storage Access API (Chrome 117 itibarıyla gönderim) üzerinden depolama/iletişim erişimi (çerez ve çerez olmayan) isteme olanağı sunuyor.

Chrome 120 sürümünden itibaren bu teklif, kaynak denemesi aracılığıyla deneme için kullanılabilecek. Geliştiriciler, önerilen çözümün kullanım alanlarını nasıl ele aldığını değerlendirerek kullanımdan kaldırma denemesi sona ermeden önce hazırlıklı olduklarından emin olmak için bu kaynak denemesine katılmalıdır.

Kaynak denemesi ayrıntıları

Chrome 120'den itibaren Chrome, üçüncü taraf bağlamında bölümlendirilmemiş depolama alanına (çerez ve çerez olmayan) erişime izin vermek amacıyla Storage Access API'nin önerilen uzantısını (geriye dönük uyumlu) etkinleştirmek için StorageAccessAPIBeyondCookies adlı kaynak denemesini destekleyecek.

Teknisyenler

API aşağıdaki gibi kullanılabilir (yerleştirilmiş iframe'de çalışan 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 erişimi yerine yalnızca belirli bir API erişimini istiyorsanız yalnızca ihtiyacınız olan API herkese açık kullanıcı adlarını iletebilirsiniz. Örneğin, yalnızca Oturum Depolama Alanı'na erişmek için {sessionStorage: true} kodunu, IndexedDB ve Web Kilitleri'ne erişmek için de {indexedDB: true, locks:true} değerini iletebilirsiniz.

Bu ek uzantıyı çağırmanın yanı sıra, çerez olmayan depolamaya erişim, Storage Access API üzerinden çerez erişiminin mevcut gereklilikleriyle eşleşme sağlayacaktır. Örneğin, Chrome'da kaynaklar aynı İlgili Web Sitesi Grubu'nda (RWS, Birinci Taraf Gruplarının yeni adı) olduğunda herhangi bir istem gösterilmez. Aynı RWS'nin parçası olmayan kaynaklar, Chrome'da Storage Access API'nin istem gereksinimlerine tabi olur.

Süre

Kaynak denemesi Chrome 120'den Chrome 125'e (veya herhangi bir aşamada 6 Ağustos 2024'ten sonra) kadar kullanılabilir.

Kapsam

Chrome 120'de yalnızca DOM Depolama (oturum ve yerel depolama), Dizine Eklenmiş DB ve Web Kilitleri kullanılabilir.

Chrome 121'de Önbellek Depolama Alanı, Kaynak Özel Dosya Sistemi, Kota, Blob Depolama ve Yayın Kanalı eklendi.

Chrome 123 sürümünde Paylaşılan Çalışanlar ve çerezlerin eklenmesi ile ilgili denetim eklendi.

requestStorageAccess, çalışan Chrome 120 itibarıyla oluşturulmadan önce çağrıldıysa özel çalışanlar bölümlendirilmemiş çerezlere erişimi devralır (bu işlem için Storage Access API işleyicisinin kullanılması gerekmez).

Katıl

  1. Üçüncü taraf bağlamında çerez ve çerez olmayan depolamayı nasıl kullandığınızı değerlendirin. Örnek kullanım alanları, bu teklifin ihtiyaçlarınıza uygun olup olmadığını anlamanıza yardımcı olabilir.
  2. Chrome 120 sürümünü (veya sonraki bir sürümü) başlatın ve test-third-party-cookie-phaseout işaretinin etkinleştirildiğinden emin olun.
  3. Özelliği, önce bir kaynak deneme jetonu oluşturmadan yerel olarak test etmek istiyorsanız tarayıcınızda #enable-experimental-web-platform-features özelliğini etkinleştirebilirsiniz.
    1. Yerel olarak testi tamamladıktan sonra StorageAccessAPIBeyondCookies kaynak denemesine kaydolabilir ve alanlarınız için bir jeton alabilirsiniz. Daha ayrıntılı talimatlar için Kaynak denemelerini kullanmaya başlama başlıklı makaleyi inceleyin. Chrome kaynak denemeleriyle ilgili sorunları giderme kılavuzu, jetonunuzun doğru şekilde yapılandırıldığından emin olmanızı sağlayacak eksiksiz bir kontrol listesi sağlar.
    2. Storage Access API herkese açık kullanıcı adını kullanmanız gereken iframe'e, HTTP üstbilgisi, HTML meta etiketi veya programatik şekilde kaynak deneme jetonunu yerleştirin. Jetonun bu API'yi kullanmak isteyen herhangi bir çerçeveye yerleştirilmesi gerektiğini unutmayın. Simgenin üst çerçeveye yerleştirilmesi, alt çerçevelerde API'nin etkinleştirilmesini sağlamaz.
  4. Siteler arası iframe'de Storage Access API herkese açık kullanıcı adını almak için document.requestStorageAccess(...) çağrısı yapın. Bu çağrının başarılı olmasıyla ilgili şartlar için Storage Access API dokümanlarını inceleyin.
  5. Varsa Storage Access API herkese açık kullanıcı adını kullanmak için iFrame'inizdeki ilgili depolama alanını taşıyın. Örneğin, window.sessionStorage.setItem(...) için yapılan aramalar handle.sessionStorage.setItem(...) haline gelir.
  6. Web sitenizi açın ve depolama alanı erişim herkese açık kullanıcı adının istenen şekilde çalıştığını doğrulayın.
  7. Kaynak denemesine katılmayı durdurmak için 3. adımda eklediğiniz jetonu kaldırın.
  8. Storage Access API Non-Cookie Storage GitHub deposuna, geri bildiriminizi veya karşılaştığınız sorunları iletin.

Demo: Bölümlendirilmemiş Yerel Depolama'ya erişmek için Storage Access API'yi kullanma

Aşağıdaki demoda, Storage Access API kullanılarak üçüncü taraf bir iframe'den bölümlendirilmemiş Yayın Kanallarına nasıl erişileceği gösterilmektedir:

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

Demo, test-third-party-cookie-phaseout işaretinin etkin olduğu Chrome 121 veya sonraki bir sürümü gerektirir.

Ek kaynaklar