Yerel halk ne kadar güvenli?


33

Soru gerçekten her şeyi söylüyor. Hizmet vermek istiyorum ancak verilerin hiçbirini kendim bir veritabanında depolamak istemiyorum. Tüm son hack vb. Haberlerde, bana müşterilerin verileri üzerinde tam kontrol sahibi olmalarının daha iyi olduğu anlaşılıyor.

Sorun, depolanan verilerin potansiyel olarak hassas olmasıdır. Yapacağım şey ... bir müşteri web sitesini ziyaret ettiğinde, 'kişisel bilgisayarda mı, halka açık bilgisayarda mı olduğunu' soracak bir soru olurdu. Ortak bir bilgisayardaysa, site erişimi reddeder.

Kişisel bir bilgisayarda olsaydı, bir şifre ayarlamak için onları ister. Tüm verileri daha sonra bu parola ile şifrelenir. Şimdi açıkçası bu çok güvenli değil. Şifreleme yöntemi JavaScript’te ve şifreleri düz metin olur, bu yüzden meraklı bir kullanıcının şifreyi localStorage içinde bulmasının ve verilere erişmesinin mümkün olacağını varsaydım.

Bunun çok fazla sorun olmadığını düşünüyorum. Kişisel bir bilgisayar kullanıyorsanız, bu durumun ortaya çıkma olasılığı çok uzak ... başka birinin bilgisayardaki belirli bir kullanıcı hesabına erişmesi gerekecek, başka birinin site hakkında bilmesi gerekecek ... başkasının anlaması gerekecek localStorage ve nasıl erişileceği. Hassas veriler, kimliklerini veya başkalarını tehlikeye atacak herhangi bir şey değildir. Sadece çoğu insanın halka açık bir şekilde yayınlanmasından hoşlanmadığı bir şeyi kaydeder.

Öyleyse asıl soru, localStorage yeterince güvenli midir?

Ek soru .. localStorage'ınızı silmek ne kadar zor? Kullanıcıların verilerini yanlışlıkla silmesini istemem.

Son olarak - hatta siteye erişebilirsiniz şifreniz varsa verilerini şifrelemek / şifresini bile değer


2
Müşteri tarafında JavaScript, şifreleme yapmak için en uygun yer değil. Her meraklı kullanıcı kodu inceleyebilir ve şifrelemenizi şifreleyebilir ve bunu gerçekten yapmaz ve şifreli şifreyi kabul eder.

Yanıtlar:


10

Şifreyi hiç saklamaya ne dersiniz, hatta yerel depolamada bile değil? Paroladan bir anahtar almak için bir anahtar türetme işlevi kullanabilirsiniz. Bir tuz ve makul sayıda yineleme ile bu terbiyeli olarak güvenli olmalıdır.


Parola PHP'ye gönderildiyse daha sonra daha güvenli olurdu, sonra perde arkasındaki anahtarı oluşturdu mu?
JasonS

Hayır. Parola ilk önce müşteride verilir. Sunucuya göndererek çalınabilecek riski artırırsınız. JS’de anahtar türetme işlemini yapmak istemcideki sırrı tutar. Her durumda, kısa bir süre sonra PW'yi unutmalısınız. Ama bence hala anlamsız - cevabımı gör.

Birçok bilgisayar korsanı oldukça zeki ... Lib bCrypt kullanın.
Eddie B,

2

JavaScript'i yerel depolama ile kullanmak (sunucunuz artı tarayıcı ile sunucu arasındaki bağlantı) olduğu kadar güvenlidir.

Herhangi biri sunucunuzu değiştirmeyi ve farklı JS dosyaları sunmayı veya değiştirmeyi (iletilirken) sunucudan istemciye gönderilen JS dosyalarını istediğinde, istedikleri verilerle her şeyi yapabilir.

Ek olarak: Veriler istemcide olduğundan, verileri korumak için hiçbir şey yapamazsınız. Sıradan bir sunucuda, örneğin erişim sıklığını sınırlayabilirsiniz (örneğin uzak bir parola için güvenli: yalnızca 10 dakika içinde okunan 1 parola). Veriler müşterideyse ve verilerle çalışan tüm kod bir saldırgan tarafından yönetilebiliyorsa, bunların tümü kullanışsızdır.

Ne de olsa yerel görevlilerde bile, web uygulamanızı güvenceye almanız gerekir! O zaman neden (umarım) güvenli sunucuda işler yapıyorsunuz? Neden istemcide yüklü yerel bir program kullanmıyorsanız?


Cihazın başka biri tarafından kullanılmasına veya çalınmasına temel güvenlik sorununun olduğunu düşünmüyor musunuz?

2

LocalStorage verilerinin şifresini çözmek için kullanılan sunucudan bir anahtar almaya ne dersiniz?

Bu şekilde işe yarayabilir:

  • Bir oturum kurulduğunda, sunucu bir anahtar döndürür.
  • Bu anahtar, localStorage içindeki verileri şifrelemek / şifresini çözmek için kullanılır.
  • Kullanıcı sayfadan ayrıldığında, başkalarının localStorage öğesinde ne olduğunu okumasını engelleyen anahtar kaybolur.

Bu, yalnızca bir kullanıcının oturmuş bir oturumu varken erişime izin vermelidir.


3
Bu, çevrimdışı verilere erişmek için çalışmaz (bu, localStorage için birincil kullanım örneği gibi). Bu yöntemi çevrimdışı kullanmak için anahtarı saklamanız gerekir.
Timothy Lee Russell

0

genellikle yerel depolamayı silmek zor değildir, ancak tarayıcıya bağlıdır. Ancak tarayıcı geliştirici araçlarına ulaşmanız gerekir (firebug, webkit stuff, vb.).

Kurabiyeleri düşündüğünüz gibi düşünün. Hassas verileri asla yerel depolamada tutmamalısınız. şifreler, kredi kartı numaraları, her neyse.

x miktardaki hareketsizlikten sonra yerel depolamayı temizlemek için her zaman bazı özellikleri uygulayabilirsiniz, ancak bu bir güvenlik sorununu çözmeyecektir. Otomatik bir oturumun süresi dolmuş gibi. Aynı sorun, eğer bir kişi bilgisayardan ayrılırsa ve oturum sona ermeden önce bir başkası oturursa, bir şeyler yapabilir.


0

İki konu:

  1. düz metin parolaları saklarsanız ve sonra bulunmasının muhtemel olmadığı gerçeğine güvenirseniz, bu gizlilik yoluyla yalnızca güvenlik olur. Verileri yalnızca açık metinlerde saklayın ve aynı varsayıma dayanın (yine de güvenli değil, ancak yanlış güvenlik duygusu yok)

  2. çoğu tarayıcıda, insanlar önbelleklerini silerse, localStorage içeriklerini de kaldırırlar. İnsanlar geçmişlerini ve önbelleklerini sildiklerinde önemli verileri kaybetmeyi beklemiyorlar.

Bence LocalStorage’ın ne anlama geldiğini aştınız. Eğer webapps iyi oynayan bir yerel veritabanını kullanmak istiyorsanız bir göz sürebilir CouchDB 'ın couchapps .

Ancak şifreyi saklamayın.


0

Javascrypt kullanabilirsiniz . Kullanıcıdan şifreleme / şifre çözme anahtarı olacak bir şifre isteyin

Şifreyi saklamanıza gerek yoktur, ancak kullanıcı sayfayı her açışında isteyin.
Kullanıcı isterse şimdi sonuçları saklayabilir.

Ama sonra stivlo'nun yorumuna katılmak için ne olacak:

  1. çoklu cihaz erişimi
  2. yedek
  3. Parolanızı mı unuttunuz
  4. çok kolay önbellek temizleme

Bence muhakemenin başlangıcını tekrar gözden geçirmelisin. Buluttan kaçının, sadece bazı yakın ve sansasyonel olaylar nedeniyle, hızlı bir sonuçtur.

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.