从客户端中检测到有潜在危险值的解决办法
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 | < |
& | %26 | & |
以上是关于从客户端中检测到有潜在危险值的解决办法的主要内容,如果未能解决你的问题,请参考以下文章
从客户端中检测到有潜在危险的 request.form值[解决方法]
从客户端中检测到有潜在危险的 request.form值[解决方法]
从客户端中检测到有潜在危险的 request.form值[解决方法]
"从客户端中检测到有潜在危险的 Request.Form 值"的解决方案汇总