Soru gerçekten her şeyi söylüyor. Bir hizmet sunmak istiyorum ancak hiçbir veriyi kendim bir veritabanında saklamak istemiyorum. Bilgisayar korsanlığı vb. İle ilgili son haberlerle birlikte, müşterilerin verileri üzerinde tam kontrole sahip olmaları daha hoş görünüyor.
Sorun, depolanan verilerin potansiyel olarak hassas olmasıdır. Ne yapacağım ... bir müşteri web sitesini ziyaret ettiğinde 'kişisel bir bilgisayarda mı, halka açık bir bilgisayarda mısınız?' Diye bir soru olurdu. Herkese açık bir bilgisayardaysa site erişimi reddeder.
Kişisel bir bilgisayarda olsaydı, bir şifre belirlemelerini ister. Tüm verileri bu şifre ile şifrelenir. Şimdi açıkçası bu çok güvenli değil. Şifreleme yöntemi JavaScript ve parolalarını düz metin olarak kullanır, bu nedenle bilgili bir kullanıcının parolayı localStorage'da bulması ve verilere erişmesinin mümkün olacağını varsayarım.
Ama bunun çok fazla bir sorun olmadığını hissediyorum. Kişisel bir bilgisayar kullanıyorsanız, bunun gerçekleşme şansı uzaktır ... bir başkasının bilgisayardaki belirli kullanıcı hesabına erişmesi gerekir, başka birinin site hakkında bilgi sahibi olması gerekir ... başka birinin anlaması gerekir localStorage ve nasıl erişilir. Hassas veriler kimliğini tehlikeye atacak herhangi bir veri veya başka bir şey değildir. Çoğu insanın herkese açık olarak yayınlanmasını istemediği bir şeyi kaydeder.
Yani soru şu ki, localStorage yeterince güvenli mi?
Ek soru .. localStorage'ınızı silmek ne kadar zor? Kullanıcıların verilerini yanlışlıkla silmelerini istemem.
Son olarak - siteye erişebileceğiniz bir parola varmış gibi verilerini şifrelemeye/şifresini çözmeye bile değer mi ..
Şifreyi yerel depolamada bile saklamamaya ne dersiniz? Paroladan bir anahtar almak için bir anahtar türetme işlevi kullanabilirsiniz. Bir tuz ve makul sayıda yineleme ile bu oldukça güvenli olmalıdır.
JavaScript'i yerel depolama ile kullanmak en fazla güvenlidir (sunucunuz artı tarayıcı ve sunucu arasındaki bağlantı).
Herhangi biri sunucunuzu değiştirmeyi ve farklı JS dosyaları sunmayı veya sunucudan istemciye gönderilen JS dosyalarını değiştirmeyi (isterse) iletmeyi başarırsa istedikleri verilerle her şeyi yapabilir.
Ayrıca: Veriler istemcide olduğundan, verileri korumak için hiçbir şey yapamazsınız. Sıradan bir sunucuda; erişim sıklığını kısıtlayın (uzaktan şifre kasası için örnek: 10 dakika içinde sadece 1 şifre okunur). Veriler istemcideyse ve verilerle çalışan tüm kodlar bir saldırgan tarafından manipüle edilebiliyorsa tüm bunlar işe yaramaz.
Sonuçta bile localstorage ile web uygulamanızın güvenliğini sağlamanız gerekir! Neden (umarım) güvenli sunucuda bir şeyler yapıyorsunuz? Değilse neden istemcide yüklü bir yerel program kullanmıyorsunuz?
LocalStorage verilerinin şifresini çözmek için kullanılan sunucudan bir anahtar almaya ne dersiniz?
Bu şekilde çalışabilir:
Bu, yalnızca kullanıcının oturumu açılmışsa erişime izin vermelidir.
İki konu:
düz metin parolalarını saklar ve daha sonra bulunamayacak duruma güvenirseniz, bu sadece muğlaklık yoluyla güvenliktir. Verileri açık metin olarak saklayın ve aynı varsayımı kullanın (yine de güvenli değil, ancak yanlış güvenlik duygusu yok)
çoğu tarayıcıda, kullanıcılar önbelleklerini silerse localStorage içeriklerini de kaldırırlar. İnsanlar geçmişlerini ve önbelleklerini sildiklerinde önemli verileri kaybetmeyi beklemezler.
Ancak şifreyi saklamayın.
genellikle yerel depolama alanını silmek zor değildir, ancak tarayıcıya bağlıdır. Yine de tarayıcı geliştirici araçlarına (firebug, webkit şeyler, vb.) İhtiyacınız var.
kurabiyeleri düşündüğün gibi düşün. Hassas verileri asla yerel depoda tutmamalısınız. şifreler, kredi kartı numaraları, her neyse.
x tutarsızlıktan sonra yerel depolamayı temizlemek için her zaman bazı özellikler uygulayabilirsiniz, ancak bu bir güvenlik sorununu çözmeyecektir. Bu otomatik oturum süresi gibi. Aynı sorun, bir kişi bilgisayardan ayrılır ve daha sonra oturum sona ermeden önce başka biri oturursa, bir şeyler yapabilir.
javascrypt kullanabilirsiniz. Kullanıcıdan şifreleme/şifre çözme anahtarı olabilecek bir şifre isteyin
Parolayı saklamanız gerekmez, ancak kullanıcı sayfayı her açtığında bunu isteyin.
Kullanıcı isterse saklayabilir ve şimdi sonuçları.
Ama sonra stivlo'nun yorumuna katılmak için, ne olacak?
Bence akıl yürütmenin başlangıcını yeniden düşünmelisin. Sadece son zamanlarda ve sansasyonel olaylardan dolayı buluttan kaçının, hızlı bir sonuçtur.