我有我的應用程序,並且來自安全測試團隊,我得到了一個關於用戶從我們的表單輸入中注入惡意代碼的可能性的錯誤報告。 該應用程序是在ASP.NET MVC4,.NET 4.5和EF 5中開發的。如何在請求驗證進入MVC 4之前清理輸入?
被測試的攻擊就像任何通常的html輸入一樣,但不是使用常規的<或>,我的同事正在使用<和>(以前字符的全角Unicode版本:here for the full list)。 MVC允許這些字符通過,然後以某種方式,ORM刪除字符的「寬」部分,並將標準字符和普通字符保存到數據庫中。不用說,如果在視圖的輸出中沒有正確編碼,這些字符的檢索和呈現可能導致XSS漏洞。
我現在需要的是消毒和執行規格化()所有在提交琴絃任何形式在應用程序的方式。 有些人告訴我要創建一個自定義模型綁定器,但在BindModel方法中,我找不到修改字段的地方,所以稍後,框架可以識別已清除的值並識別注入。
任何建議將不勝感激。
請閱讀鏈接http://stackoverflow.com/questions/19735214/allowing-only-certain-html-tags-as-user-input – Thanigainathan
從我的理解,這將不適合我,因爲我不喜歡我不想允許或限制可能從輸入獲得的HTML的一部分,我想要做的就是規範化字符串以刪除所有的全角度Unicode,以便MVC內置驗證器可以對真實字符做出反應並且不會被欺騙與僞裝的人。 – CesarD