潜在危险:客户端检测到Request.Form的值。

16

我有一个asp.net应用程序,在搜索框中输入特殊字符,比如“:&#,”会出现问题。如果我在搜索框中输入此文本,则会显示以下异常:

检测到来自客户端的潜在危险 Request.Form 值(txtValue=": &#, ")。

然后我在网上搜索,找到了一个通用解决方案,即将validaterequest设置为false。但是我的应用程序没有做出任何更改。请帮我解决这个问题。感谢任何回复。


1
你在哪里准确地设置了ValidateRequest? - EMP
<%@ Page ValidateRequest="false" - MAC
可能是重复的问题:从客户端检测到一个潜在危险的Request.Form值 - Burgi
4个回答

24

.net 3.5 和操作系统是 Server 2003 IE8。 - MAC
2
如果您需要设置ValidateRequest="false",则应在<%@ Page %>指令中逐个页面进行设置;否则,您可能会在整个应用程序中打开安全漏洞。 - PhilPursglove
它救了我..谢谢 :) - Topman
很抱歉,上述方法已经不再适用。现在可行的方法是由Jamie M指定的,在相关控制器上添加[ValidateInput(false)]属性。 - Hashim Akhtar
显示剩余2条评论

18

虽然有点晚,但我同意那些说在 web.config 中设置会产生安全漏洞的观点。

我使用在相关控制器上使用 [ValidateInput(false)] 属性来处理这个问题。

ValidateInput 可在 MVC2 中的 System.Web.MVC 中找到。


2

1
使用 Framework 4.5,解决方案是修改 web.config 文件,添加以下行:
<httpRuntime requestValidationMode="4.5"/>

获取请求的代码如下:
string reportXML = this.Request.Unvalidated.Form["reportstream"];

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接