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'te üçüncü taraf bağlamlarına göre bölümlendirme yaparak depolama alanı, hizmet çalışanları ve iletişim API'lerinde değişiklikler yapıldı. Üçüncü taraf bağlamında kullanılan etkilenen API'ler, aynı kaynak politikasının yanı sıra üst düzey bağlamın bulunduğu site tarafından da izole edilir.

Üçüncü taraf depolama bölümlendirme desteği uygulamak için zamanı olmayan siteler, bölümlendirmeyi geçici olarak kaldırmak (aynı kaynak politikasıyla yalıtmaya devam ederken üst düzey siteden yalıtımı kaldırmak) ve sitelerine yerleştirilmiş içerikte depolama, hizmet çalışanları ve iletişim API'lerinin önceki davranışını geri yüklemek için kullanımdan kaldırma denemesine katılabilir. Desteği sonlandırılan bu deneme süresi, 3 Eylül 2024'te Chrome 127 sürümüyle birlikte sona erecek. Bunun, üçüncü taraf çerezlerine erişim için desteği sonlandırma denemesinden farklı olduğunu unutmayın: Bu, yalnızca depolama alanına erişim içindir.

Chrome, üçüncü tarafların çerez depolama alanı bölümlendirmesi nedeniyle kesintiye uğradığı belirli kullanım alanlarını ele almak üzere uzun vadeli bir çözüm olarak, üçüncü tarafların Storage Access API (Chrome 117'den itibaren gönderim) üzerinden depolama/iletişim erişimi (hem çerez hem de çerez olmayan) isteyebilmesi ve üçüncü tarafların çerez erişimi istemesine olanak tanımaktadır.

Bu teklif, Chrome 120 sürümünden itibaren kaynak denemesi aracılığıyla deneme için kullanılabilecektir. Geliştiriciler, sunulan çözümün kendi kullanım alanlarını nasıl ele aldığını değerlendirmek üzere bu kaynak denemesine katılarak desteği sonlandırma denemesi sona ermeden önce hazır olduklarından emin olmalıdır.

Kaynak denemesiyle ilgili ayrıntılar

Chrome 120'den itibaren Chrome, üçüncü taraf bağlamında bölümlendirilmemiş depolama alanına (çerezsiz ve çerezsiz) erişim sağlamak üzere Storage Access API'nin önerilen uzantısını (geriye dönük uyumluluğa sahip) etkinleştirmek için StorageAccessAPIBeyondCookies kaynak denemesini destekleyecektir.

Teknisyenler

API aşağıdaki gibi kullanılabilir (yerleştirilmiş iframe'de çalıştırılan 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şimi istiyorsanız ihtiyacınız olan API herkese açık kullanıcı adlarının adlarını iletebilirsiniz. Örneğin, yalnızca Oturum Depolama'ya erişmek için {sessionStorage: true} veya IndexedDB ve Web Locks'a erişmek için {indexedDB: true, locks:true} yöntemini iletebilirsiniz.

Çerez olmayan depolama alanına erişim, bu ek uzantıyı çağırmanın ötesinde, Storage Access API üzerinden çerez erişimi için geçerli koşulları karşılar. Örneğin, Chrome'da kaynaklar aynı İlgili Web Sitesi Grubu'nda (RWS, Birinci Taraf Gruplar'ın yeni adı) olduğunda herhangi bir istem gösterilmez. Aynı RWS'nin parçası olmayan kaynaklar, Chrome'daki Storage Access API'nin zorunlu gereksinimlerine tabidir.

Süre

Kaynak denemesi, Chrome 120 ile Chrome 125 arasında (veya herhangi bir aşamada 6 Ağustos 2024'ten sonra) 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ı özellikleri eklendi.

Chrome 123 sürümünde, Paylaşılan Çalışanlar ve çerezlerin eklenmesi konusundaki kontrol özelliği eklenmiştir.

Özel Çalışanlar, Chrome 120 sürümünden itibaren çalışan oluşturulmadan önce requestStorageAccess çağrıldıysa, 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 çerezleri 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. Önce kaynak deneme jetonu oluşturmadan özelliği yerel olarak test etmek istiyorsanız tarayıcınızda #enable-experimental-web-platform-features ayarını etkinleştirebilirsiniz.
    1. Yerel olarak testi tamamladıktan sonra StorageAccessAPIBeyondCookies kaynak denemesine register 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 olmak için eksiksiz bir yapılacaklar listesi sağlar.
    2. Bu kaynak deneme jetonunu, Storage Access API kullanıcısını kullanmanız gereken iframe'e bir HTTP üst bilgisi veya HTML meta etiketi kullanarak ya da programatik olarak yerleştirin. Jetonun bu API'yı kullanmak isteyen herhangi bir çerçeveye yerleştirilmesi gerektiğini unutmayın. Jetonun üst çerçeveye yerleştirilmesi, alt çerçevelerde API'nin etkinleştirilmesini sağlamaz.
  4. Siteler arası iframe'de Storage Access API kullanıcısını almak için document.requestStorageAccess(...) çağrısı yapın. Bu çağrının başarılı olması için gereken koşullar için Storage Access API dokümanlarına bakın.
  5. Mevcutsa Storage Access API kullanıcı adını kullanmak için iFrame'inizdeki ilgili depolama alanını taşıyın. Örneğin, window.sessionStorage.setItem(...) numaralı telefona yapılan aramalar handle.sessionStorage.setItem(...) olur.
  6. Web sitenizi açın ve depolama alanı erişimi herkese açık kullanıcı adının gerektiği gibi çalıştığından emin olun.
  7. Kaynak denemesine katılmayı durdurmak için 3. adımda eklediğiniz jetonu kaldırın.
  8. Storage Access API çerez depolama alanı olmayan GitHub deposuna geri bildirim gönderin veya karşılaştığınız sorunları bildirin.

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

Aşağıdaki demo, Storage Access API'yi kullanarak bir üçüncü taraf iframe'den bölümlendirilmemiş Yayın Kanallarına nasıl erişileceğini göstermektedir:

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ünü gerektirir.

Ek kaynaklar