2016-04-04 30 views
1

Bir kullanıcının '<' ve '>' sembollerini içeren bir parola yazdığı bu komik olaya rastladım.MVC parola alanı girdisi "İstemciden potansiyel olarak tehlikeli bir Request.Form değeri algılandı"

MVC 5 varsayılan form doğrulama işlevi olması, ben hata alıyorum: aksi takdirde görüntülenemiyor,

A potentially dangerous Request.Form value was detected from the client (Password="1 < 2 3 a @ < i O")

(kasten şifre değerindeki boşluk koymak yukarıdaki hata ... öyle potansiyel olarak tehlikeli ... !!!)

Şimdi, mvc otomatik Cross Site Scripting önlemek için kullanıcı girdisini kodlayan biliyorum, bu yüzden normal bir metin kutusuna, böyle bir sorun olurdu, ama bir şifre alan, açıkça otomatik kodlanmış değil (gerektiği gibi!).

Hızlı (belki de kirli) bir çözüm, modeldeki parola alanında [AllowHtml] dekoratörünü etkinleştirmem olabilir.

Denetleyici eyleminde [ValidateInput(false)] dekoratörünü etkinleştirdiğim başka bir hızlı (belki daha kirli) geçici çözüm.

Ama benim sorunumun üstesinden gelebilecek ve sistemimde herhangi bir potansiyel delik açmayacak bir tavsiye istiyorum ... Herhangi bir öneri, lütfen?

cevap

0

Bir oturum açma denetleyicisi için, doğrulamayı kapatmak yeterlidir. Şifre hiçbir zaman gösterilmeyecek, hatta herhangi bir yerde saklanmayacaktır ve kullanıcı adını herhangi bir yerde görüntülüyorsanız, doğru şekilde kodlandığından emin olabilirsiniz. Standart giriş onaylaması, girilen verileri nasıl kullandığınız konusunda hiçbir fikre sahip değildir, bu yüzden oldukça paranoyak olmalıdır. Gerekirse, kapatmak, uygulamanızı otomatik olarak daha az güvenli hale getirir.

+0

Cevabınız için teşekkür ederiz! Yine de, söylediklerin doğruysa, MVC'nin şifre alanlarındaki onaylamayı varsayılan olarak devre dışı bırakacağını düşünüyorum ... bazı özel seçenekler olmalı ... yani şifre alanında "AllowSpecialCharacters" yazan bir dekoratör, veya – cnom

+0

gibi bir şey setpassword() eyleminde ne var? –

İlgili konular