Depolama alanı ve çerezler

Uzantılar, normal bir web sitesine benzer şekilde çerezleri depolayabilir ve web depolama API'larına erişebilir. Ancak bazı durumlarda bunlar uzantılarda farklı davranır.

Uzantı API'si hakkında bilgi için chrome.storage sayfasına bakın.

Depolama

Uzantılarda web platformu depolama API'lerinin kullanılması genellikle istenir. Bu bölümde, bu API'lerin uzantı bağlamındaki davranışları incelenmektedir. Bunlar bazen web'deki davranış biçimlerine göre farklılık gösterebilir.

Kalıcı

Bir kullanıcı tarama verilerini temizlediğinde uzantı depolama alanı silinmez. Bu durum, web depolama API'leri (ör. Local Storage ve IndexedDB) kullanılarak depolanan tüm veriler için geçerlidir.

Varsayılan olarak uzantılar, depolama alanıyla ilgili normal kota kısıtlamalarına tabidir. Bunu navigator.storage.estimate() çağrısı yapılarak kontrol edebilirsiniz. Nadiren de olsa depolama, ağır bellek baskısı altında da atılabilir. Bunu önlemek için:

  • Hem uzantı hem de web depolama API'lerini etkileyen ve uzantıları hem kota kısıtlamalarından hem de çıkarma işleminden muaf tutan "unlimitedStorage" iznini isteyin.
  • Tahliyeye karşı koruma için navigator.storage.persist() numaralı telefonu arayın.

Uzantı depolama alanı, uzantı hizmet çalışanı, tüm uzantı sayfaları (pop-up'lar ve yan panel dahil) ve ekran dışı dokümanlar dahil olmak üzere uzantının kaynağı genelinde paylaşılır. İçerik komut dosyalarında web depolama API'lerinin çağrılması, içerik komut dosyasının eklendiği ana makine sayfasındaki verilere erişir, uzantıya değil.

Service Worker'larda erişim

IndexedDB ve Cache Storage API'lerine hizmet çalışanlarından erişilebilir. Ancak Yerel Depolama ve Oturum Depolama özellikleri geçerli değildir.

Hizmet çalışanından Yerel Depolama veya Oturum Depolama'ya erişmeniz gerekiyorsa ekran dışı bir doküman kullanın.

Bölümlendirme

Bölümlendirme, depolanan verilere erişilebilecek yerleri sınırlamak için anahtarların eklendiği yerdir. Storage, geçmişten bu yana kaynak temelli olarak ayarlanıyordu.

Chrome 115'ten itibaren depolama bölümü bölümlendirme, belirli siteler arası izleme türlerini önlemek için bölümlendirme anahtarlarının tanımlanma biçiminde bazı değişiklikler getirmektedir. Pratikte bu, A sitesi B sitesini içeren bir iframe yerleştirirse B sitesinin genellikle doğrudan gidildiğinde sahip olacağı depolama alanına erişemeyeceği anlamına gelir.

Bunun uzantılar üzerindeki etkisini azaltmak için iki muafiyet geçerlidir:

  • chrome-extension:// şemasına sahip bir sayfa herhangi bir siteye yerleştirilmişse depolama alanı bölümlendirmesi uygulanmaz ve uzantı, en üst düzey bölümüne erişebilir.
  • chrome-extension:// şemasına sahip bir sayfa iframe içeriyorsa ve uzantının yerleştirdiği site için ana makine izinleri varsa bu site, üst düzey bölümüne de erişebilir.

kurabiyeler

Çerezler, belirli bir alan ve yolla ilişkili anahtar/değer çiftlerini depolamak için bir yol sunar. Uzantılar açısından sınırlı değere sahiptirler, ancak belirli bir kullanım alanınız varsa veya belirli bir kullanım alanınız varsa veya uygulamada bunları kullanan bir üçüncü taraf komut dosyasını paket haline getirdiyseniz, davranışlarını anlamak yararlı olabilir.

Güvenli çerezler

Secure çerez özelliği yalnızca https:// şeması için desteklenir. Sonuç olarak, chrome-extension:// sayfaları bu özelliğe sahip çerezler ayarlayamaz.

Bu ayrıca, uzantı sayfalarının Secure özelliğinin gerekli olduğu diğer çerez özelliklerini kullanamayacağı anlamına da gelir:

Bölümlendirme ve SameSite davranışı

chrome-extension:// sayfalarında ayarlanan çerezler her zaman SameSite=Lax kullanır. Sonuç olarak, bir uzantı tarafından kendi kaynağına oluşturulan çerezlere çerçevelerde hiçbir zaman erişilemez ve bölümlendirme ilgili değildir.

Bir uzantı sayfasındaki çerçeveye yüklenmiş bir üçüncü taraf sitesi veya bir uzantı sayfasından üçüncü taraf bir kaynağa yapılan istek gibi üçüncü taraf sitelerle ilişkili çerezler için çerezler iki yöntem dışında web ile aynı şekilde davranır:

  • Belirli bir sekme için üst düzey sayfa bir chrome-extension:// sayfasıysa üçüncü taraf çerezleri alt çerçevelerde bile hiçbir zaman engellenmez.
  • Bir uzantıdan üçüncü tarafa gönderilen istekler, uzantının üçüncü taraf için ana makine izinleri varsa aynı site olarak değerlendirilir. Bu, SameSite=Strict çerezlerinin gönderilebileceği anlamına gelir. Bunun yalnızca ağ istekleri için geçerli olduğunu, JavaScript'te document.cookie üzerinden erişim için geçerli olmadığını ve üçüncü taraf çerezleri engellenmişse geçerli olmadığını unutmayın.

Üçüncü taraf çerezleriyle ilgili ayarların Özel Korumalı Alan çalışmasından etkilendiğini ve zaman çizelgesine göre düzenlendiğini unutmayın.

chrome.cookies API, her bir API yöntemiyle kullanılacak bölüm anahtarı üzerinde kontrol sahibi olmanızı sağlar. Daha fazla bilgi için API referansına bakın.