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

时间:2010-06-02 06:07:37

标签: c# asp.net validate-request

我有一个asp.net应用程序,当我在搜索框中输入“:&#,”之类的特殊字符时会遇到一些问题。如果我在搜索框中输入此文本,我得到了这样的例外。

  

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

然后我在网上搜索,我有一个通用的解决方案,将validaterequest设置为false。但是我的申请没有任何变化。请帮我解决这个问题。任何回应将不胜感激。

4 个答案:

答案 0 :(得分:22)

添加包含

的web.config
<system.web>
    <pages validateRequest="false" />
</system.web>

到包含有问题表单的页面的目录。

有关完整说明,请参阅http://www.asp.net/learn/whitepapers/request-validation

如果你使用asp.net 4.0,你可以尝试

<httpRuntime requestValidationMode="2.0" />

另见

答案 1 :(得分:17)

有点晚了,但与那些说将其放入web.config的人一致是一个安全漏洞。

我使用相关控制器上的[ValidateInput(false)]属性来执行此操作。

ValidateInput位于MVC2中的System.Web.MVC

答案 2 :(得分:1)

我创建了一个包含articlearticleId列的表article_content。我还在article_content列中使用了html编辑器。当我试图保存时,我得到了同样的错误。通过将[AllowHtml]添加到类中的article_content属性来解决此问题。

不要忘记使用System.Web.Mvc包含命名空间。更多细节: http://www.infinetsoft.com/Post/A-potentially-dangerous-Request-Form-value-was-detected-from-the-client/1246

答案 3 :(得分:1)

使用Framework 4.5,解决方案是修改web.config并添加以下行:

<httpRuntime requestValidationMode="4.5"/>

并按以下方式获取请求:

string reportXML = this.Request.Unvalidated.Form["reportstream"];