從客戶端中檢測到有潛在危險的 request.form值 以及 request.querystring[解決方法]


一、從客戶端中檢測到有潛在危險的request.form值

 

當頁面編輯或運行提交時,出現“從客戶端中檢測到有潛在危險的request.form值”問題,該怎么辦呢?如下圖所示:
從客戶端中檢測到有潛在危險的 request

下面博主匯總出現這種錯誤的幾種解決方法:
問題原因:由於在asp.net中,Request提交時出現有html代碼或javascript等字符串時,程序系統會認為其具有潛在危險的值。環境配置會報出“從客戶端 中檢測到有潛在危險的Request.Form值”這樣的Error。
1、當前提交頁面,添加代碼
打開當前.aspx頁面,頁頭加上代碼:validateRequest=”false”,如:

<%@ Page Language="C#" ValidateRequest="false" AutoEventWireup="false" CodeFile="default.aspx.cs" Inherits="default" %>

2、全局修改web.config配置文件(此舉不建議、不安全)
打開web.config文件,在<system.web></system.web>中間,加上如下代碼:

<pages validateRequest="false" />

如果以上兩種方法都無法解決,請接着往下看,

問題原因:由於你當前的.net ifreamwork框架環境是4.0

3、同樣,打開web.config配置文件,在<system.web></system.web>中間,加上代碼:

<httpRuntime requestValidationMode="2.0" />

4、如果你的網站程序本身是net 2.0環境開發的,但放到了VS2010軟件里運行,也會出現這種情況,你可以把運行解決方案切換成net2.0即可,更換方法詳見頁面第3步:點擊進入

5、另一種處理方法:原因是所傳值含有特殊危險符號,那么可以在傳前,利用Server.HtmlEncode(string)方法,對字符串進行編碼,這樣就會將危險字符轉義為普通的字符。如TextBox1.Text=Server.HtmlEncode(str);

了解更多,參考微軟網頁:http://www.asp.net/whitepapers/request-validation

后面發現原來3年前,對此問題解決方法有過簡要總結,不過沒這么全面,看來經歷可以讓人成長是沒錯的,有總結此問題文章:VS2005調試問題解決方案集錦

本博文章基本上屬於原創或收集整理,都是心血結晶。
歡迎轉載分享,轉載請注明出處,謝謝!
本文地址:從客戶端中檢測到有潛在危險的 request.form值[解決方法]

 

二、MVC:從客戶端中檢測到有潛在危險的request.querystring值

[ValidateInput(false)]
public ActionResult Search(string key, string id = "", string bid = "", int page = 1, int limit = 15, int p = 0, int t = 0)
{
   return View();
}

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM