LocalStorage ne kadar kalıcıdır?


104

Yazdığım bir eklenti için büyük ölçüde localStorage'a bağlıyım. Tüm kullanıcı ayarları içinde saklanır. Bazı ayarlar, kullanıcının yazma normal ifadelerini gerektirir ve normal ifade kuralları bir noktada kaldırılırsa üzülürler. Bu yüzden şimdi localStorage'ın ne kadar kalıcı olduğunu merak ediyorum.

Gönderen özellikleri :

Kullanıcı aracıları, yerel depolama alanlarındaki verileri yalnızca güvenlik nedeniyle veya kullanıcı tarafından talep edildiğinde sona erdirmelidir.

Yukarıdakiler, müşteri tarafındaki çerezler gibi çalışıyor gibi görünüyor. Yani, kullanıcı tüm tarayıcı verilerini (geçmiş, tanımlama bilgileri, önbellek vb.) Temizlediğinde localStorage da kesilecektir. Bu varsayım doğru mu?


1
Tarayıcıların neyin "güvenlik nedeni" oluşturduğuna karar verdiklerini düşünürsek, ideal bir dünyada bunun çok uzun süreceğini varsayamazsınız. Bununla birlikte, bir kullanıcı açıkça temizleyene kadar devam ettiğini varsaymak muhtemelen güvenlidir.
Corbin

1
LocalStorage'ı kullanırken sadece bir uyarı: Firefox 39, 38 ve 37'de güvenilir bir şekilde çalışmıyor gibi görünüyor (daha eski hiçbir şeyi kontrol etmedik). Kullanıcımızın makinelerinin yaklaşık% 1'inde, localStorage bazen sitemize göz atarken kaybolur ve oturum çerezi korunur. Bana bir böcek gibi görünüyor.
Andreas

1
@PeeHaa, Yalnızca tanımlama bilgileri gibi çalışmaz , aynı zamanda yasal olarak "tanımlama bilgileri" olarak da tanımlanır . Aslında, depolama bilgisi url'de diğer çerezlerin yanında gösteriliyorchrome:settings/cookies
Pacerier

Yanıtlar:


70

Mozilla bunu çerezler gibi uygular:

DOM Depolama, Zaman aralığı "Her şey" olduğunda "Araçlar -> Yakın Geçmişi Temizle -> Çerezler" aracılığıyla temizlenebilir (nsICookieManager :: removeAll aracılığıyla)

https://developer.mozilla.org/en/DOM/Storage

DOM Depolamasında , verilerinizden herhangi biri için bir sona erme süresi belirtmek mümkün değildir. Tüm son kullanma kuralları kullanıcıya bırakılmıştır. Mozilla söz konusu olduğunda, bu kuralların çoğu Çerez ile ilgili süre sonu kurallarından devralınır. Bu nedenle, DOM Depolama verilerinizin çoğunun en azından anlamlı bir süre dayanmasını bekleyebilirsiniz.

http://ejohn.org/blog/dom-storage/

Chrome bunu önbellek gibi uygular:

LocalStorage Güvenli Depolama Değildir

HTML5 yerel depolama, verileri şifrelenmemiş olarak dize biçiminde normal tarayıcı önbelleğine kaydeder .

Kalıcılık

Kullanıcı (önbelleği sil) veya uygulama tarafından silinene kadar diskte

https://developers.google.com/web-toolkit/doc/latest/DevGuideHtml5Storage


"Çerezin yerine geçme" konusuna gelince, tamamen değil

Çerezler ve yerel depolama gerçekten farklı amaçlara hizmet eder. Çerezler öncelikle sunucu tarafı okumak içindir, LocalStorage yalnızca istemci tarafında okunabilir. Öyleyse soru, uygulamanızda bu verilere kimin ihtiyacı var - istemci mi yoksa sunucu mu?


1
Sanırım bu MDN bağlantısı daha net açıkladı.
Bo Lu

17

Temel olarak, gerektiği değil ağır Yerel Depolama bağlıdır.

Yerel Depolama, Oturum Depolama ile birlikte, daha tutarlı bir API tanımlayarak tanımlama bilgilerinin yerini almayı amaçlar. Çerezlerden birkaç fark vardır:

  • Çerezlere hem istemci hem de sunucu tarafından erişilebilirken, genel olarak Web Depolamaya ve özellikle Yerel Depolamaya yalnızca istemci tarafından erişilebilir.
  • Alan başına 5MB'den (Firefox, Google Chrome ve Opera ve IE'de 10MB) fazla artırılmış kapasite (çerezler için resmi 4 KB'dir).

Yani evet , varsayımınız doğru.


1
+1 - bu nedenle yerel depolamayı bir önbellek olarak kullanıyorum ve sunucuda kullanıcı verilerini yedekledim. (Tabii ki, yerinde bir giriş mekanizması olduğunu varsayar.)
josh3736

2
Basically, you should not heavily depend on Local Storage.... Kesinlikle !!
Tenali Raman

7

Yerel depolamayı kullanmayla ilgili dikkat edilmesi gereken bir nokta. Tarayıcıya çok özeldir. Verileri firefox ile depolarsanız, bu, chrome veya ie vb. Olarak kullanılamaz. Ayrıca çerezleri ve oturumları temizlemeye gelince, yerel depolamanın temizlenip temizlenmediğinin tarayıcıya özgü olduğunu da fark ettim. Bir uygulama için gerçekten yerel depolamaya güvenmeyi planlıyorsanız, ayrıntılara çokça bakarım.


14
Bu çerezler için de geçerli değil mi?
Jeffrey Sweeney

3
Bu çerezler için de geçerlidir.
Moshe L

Hayır, bu çerezler için mutlaka doğru değildir: OSX'te, Webkit kullanan uygulamalar, deneyimlerime göre Çerezleri paylaşıyor gibi görünüyor. Etkileri yanlış yorumluyor olabilirim.
Thomas Tempelmann

Öte yandan, tarayıcıya özgü olduğunu varsaydığım bir eklenti yazıyor.
GuyT

5

Yerel Depolama, bir istemcide güvenilir, kalıcı bir veri deposu olacak şekilde tasarlanmıştır. O değil işlevi Oturum Depolama karşılaması gereken tasarlandığını: "daha iyi cookie" olarak tasarlanmış.

Gönderen Aralık 2011 Web Depolama Spec Aday Öneri ,

(Yerel Depolama), birden çok pencereyi kapsayan ve geçerli oturumun ötesinde kalan depolama için tasarlanmıştır. Özellikle, Web uygulamaları, performans nedenleriyle istemci tarafında kullanıcı tarafından yazılmış belgelerin tamamı veya bir kullanıcının posta kutusu gibi megabaytlarca kullanıcı verilerini depolamak isteyebilir.

İstemci tarafı verileri olarak - tarayıcının uyguladığı boyut sınırları dahilinde herhangi bir istemci tarafı verileri kadar kalıcıdır . Kullanıcılar bunu istedikleri zaman silebilir, bir metin düzenleyicide açabilir ve düzenleyebilirler - tıpkı HERHANGİ istemci tarafı verileri gibi.


1
Belki bu, 8 yıl önceki orijinal gönderinizden bu yana değişmiştir, ancak Yerel Depolama, tanımlama bilgilerinin yerini almak için çok fazla kullanılabilir (burada yalnızca istemci tarafında erişim gereklidir). Oturum Depolama yapılamaz. Tarayıcı kapatılır kapatılmaz Oturum Deposu silinir.
Brad

3

Bir iOS uygulaması için localStorage kullanıyorsanız çok dikkatli olun. İOS'un en son sürümü (kafamın üstündeki 5.1), yerel depolama ve localdb verilerini önbelleğin düzenli olarak temizlenen, yani hiç kalıcı olmayan bir bölümüne taşıdı. Bunun bir hata mı yoksa politika değişikliği mi olduğunu henüz söyleyemiyorum.


2
Bunun Web Görünümleri için doğru olduğuna ancak Safari için doğru olduğuna inanıyorum.
Trott
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.