客戶端中檢測到有潛在危險的Request.Form 值的處理辦法

從客戶端中檢測到有潛在危險的 Request.Form 值
由於在.net中,Request時出現有HTML或Javascript等字符串時,系統會認爲是危險性值。立馬報錯上面的錯誤。
解決辦法:
解決方案一:
在.aspx文件頭中加入這句:
<%@ Page validateRequest="false"  %>
解決方案二:
修改web.config文件:
<configuration>
  <system.web>
    <pages validateRequest="false" />
  </system.web>
</configuration>
因爲validateRequest默認值爲true。只要設爲false即可。
當然,這樣只能是讓界面好看一些,要想抵制注入,還得從過濾上做足功夫
然後,還是有不禁用validateRequest的方法的,如下
不禁用validateRequest=false。
  正確的做法是在你當前頁面添加Page_Error()函數,來捕獲所有頁面處理過程中發生的而沒有處理的異常。然後給用戶一個合法的報錯信息。如果當前頁面沒有Page_Error(),這個異常將會送到Global.asax的Application_Error()來處理,你也可以在那裏寫通用的異常報錯處理函數。如果兩個地方都沒有寫異常處理函數,纔會顯示這個默認的報錯頁面呢。
  舉例而言,處理這個異常其實只需要很簡短的一小段代碼就夠了。在頁面的Code-behind頁面中加入這麼一段代碼:  
以下是引用片段:
protected void Page_Error(object sender, EventArgs e)
{
Exception ex = Server.GetLastError();
if (ex is HttpRequestValidationException)
{
Response.Write("請您輸入合法字符串。");
Server.ClearError(); // 如果不ClearError()這個異常會繼續傳到Application_Error()。
}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章