首页 > 代码库 > 从客户端中检测到有潜在危险值的解决办法

从客户端中检测到有潜在危险值的解决办法

问题描述:

针对"http://...?name=&age=”这样的请求,使用Request.Form和Request.QueryString方法接收数据,会出现:从客户端(....)中检测到有潜在危险值...的错误提示。

问题原因:

由于在asp.net中,Request提交时出现有html代码或javascript等字符串时,程序系统会认为其具有潜在危险的值。环境配置会报出“从客户端 中检测到有潜在危险值”这样的Error。

解决方案:

方案1:

(1)在配置文件中加入:

<httpRuntime requestValidationMode="2.0"/>

(2)在.aspx页面中加入:

<%@ Page ValidateRequest="false"

方案2:

原因是所传值含有特殊危险符号,那么可以在传前,利用HttpUtility.HtmlEncode(string)方法,对字符串进行编码,这样就会将危险字符转义为普通的字符。如string param=Server.HtmlEncode(str);

建议使用方案1。

在方案2总,如果传递的内容包括&等这样的特殊符号,传输数据会丢失。

下面针对传输特殊字符做下总结:

特殊字符  HttpUtility.UrlEncode HttpUtility.HtmlEncode
= %3d =
< %3c &lt;
& %26 &amp

 

从客户端中检测到有潜在危险值的解决办法