ASP.NET中的請求驗證

這兩天作項目的時候偶然發現項目中的保存功能的時候出現這樣的異常:異常詳細信息: System.Web.HttpRequestValidationException: 從客戶端(XXXX)中檢測到有潛在危險的 Request.Form 值。通過查詢調試發現,保存的文本中存在回車符,<br/>標籤做爲參數的值的一部分傳到後臺了,被後臺檢測出有潛在的風險。web

        首先的想法就是在請求後臺以前把參數處理成不含<br/>標籤的形式,前臺保存取值的時候用的是prototype中的form.serialize()的方法,傳的時候時已經編碼過的值,可是不知道爲何用new Ajax.Request請求後臺是時候,仍是包含<br/>的標籤,從而致使了該異常的出現,改爲jQuery的form.serialize()的方法取得值和prototype取得值是一致的,用jQuery.Ajax請求的時候就沒有這個問題,這樣把prototype有關的代碼都改爲jQuery問題得以解決,可是目前的這個項目大部分都是用prototype作的,換起來比較麻煩,因此必須尋找一個其餘的方法來處理這個問題。(之後有時間會查一下prototype爲何會出現這樣的問題,你們有知道的歡迎交流學習)安全

      asp.net能夠禁用這些風險的驗證 具體的作法是:在配置文件webconfig中增長 <httpRuntime requestValidationMode="2.0" />和 <pages validateRequest="false" />兩個配置(<system.web>這個配置下),用於禁用請求驗證,這樣異常得以解決,可是這樣會方法會很不安全,若是對用戶輸入的信息安全性沒有要求的話能夠採用。
asp.net

    目前還有沒有找到更好的方法來解決這個問題,暫時使用的是第二個方法,你們有什麼好的方法歡迎來和我交流。學習

相關文章
相關標籤/搜索