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

Posted FIGHTING

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从客户端中检测到有潜在危险值的解决办法相关的知识,希望对你有一定的参考价值。

问题描述:

针对"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

 

以上是关于从客户端中检测到有潜在危险值的解决办法的主要内容,如果未能解决你的问题,请参考以下文章

从客户端中检测到有潜在危险的 request.form值[解决方法]

从客户端中检测到有潜在危险的 request.form值[解决方法]

从客户端中检测到有潜在危险的 request.form值[解决方法]

"从客户端中检测到有潜在危险的 Request.Form 值"的解决方案汇总

异常记录MVC:从客户端中检测到有潜在危险的 Request.Form 值 的解决方法 [转]

从客户端中检测到有潜在危险的 Request.Form 值