2016-03-24 9 views
1

Çok basit bir parola kutusuna bir özelliğe bağlanıyorum. Kullanıcı mevcut şifreyi düzenlediğinde, hepimizin bildiği "......." olarak görüntülenir. kodudur:MVC: Şifre değeri sayfanın kaynağından görüldü

@Html.PasswordFor(m => m.Password, new { value = Model.Password }) 

Ancak righ tıklayın ve 'Sayfa kaynağını', güvenlik endişelerini sebep görünüyor düz metin olarak şifre göreceksiniz eğer. Bunu saklamak için zaten var mı? Çok teşekkürler!

+0

Bu problemi çözmek için şifreleme şifre çözme tekniğini kullanabilirsiniz. –

+0

Hey Kartikeya, daha fazla detay veya herhangi bir örnek? – Samuel

+1

Neden mevcut şifreyi kullanıcı arayüzünde göstermek istiyorsunuz, yeni bir tane girsinler. Sadece mevcut şifreyi girin ve yeni şifre girin. –

cevap

0

Görünümü, modelinizle bağladığınızda ve değeri denetleyiciden aldığınızda. ve sadece html değerini tüm değerleriyle oluşturur. Bu şifre değeri görünür. @HTML.PasswordFor sadece şifreyi tarayıcıya sunar. Güvenli olacağından emin olmak için şifreyi kaydetmek ve almak için şifreleme/şifre çözme kullanmanız gerekir.

+0

Şifrelerin hiçbir zaman şifresi çözülmemeli, şifrelenmek yerine şifreye sahip olmanız gerekir. – ZippyV

2

Bu konuda yapabileceğiniz güzel bir şey var. Bir kullanıcı girdisi olduğundan, formun gönderilmesinden önce bir şekilde değeri belirtilmelidir. İstemci tarafı şifreleme/şifre çözme, büyük olasılıkla istemci tarafı kodunun gerçekten güvenceye alınamaması nedeniyle çalışmayacaktır. Dolayısıyla istemci tarafında şifreleme (simetrik veya asimetrik) kullanırsanız, sayfa kaynağına erişimi olan bilgisayar korsanları şifreleme/şifre çözme algoritmasını görebilir veya şifre değerini bildiği bir şeye değiştirebilir. Yani kullanıcı adı bir şifre yazarken bilgisayar korsanının sayfanın görüntü kaynağına erişiminin olup olmadığını söylediğim gibi yapabileceğiniz bir şey yok. Web üzerinden hassas veriler gönderen PCI uyumlu uygulamalar bile (örneğin, kredi kartı numaraları) ham kullanıcı girdisini, sonraki istemlerde kullanılacak bir belirteç üreten bazı uzak güvenlik belirteci sunucularına gönderir. Önemli olan, Html.PasswordFor bunu yapar. Parolayı düz bir dize olarak görüntülemek yerine, parolanızı yazarken arka yüzünüzden birinin ekrana bakması durumunda onu göremezsiniz. Ne zaman bir şifre gönderirken yapmalısınız, orta saldırıda bir adam önlemek için https kullanmaktır. Ve elbette, düz kullanıcı parolalarını sunucuya (yalnızca onların karma değerleri) depolamamalısınız, böylece sızdırılmaları mümkün olmadı.

İlgili konular