c# - System.Web.HttpRequestValidationException : A potentially dangerous Request. 从机器人客户端检测到表单值?

标签 c# asp.net

我们有一个带有搜索表单的网络应用程序,允许用户输入一些文本,我们会根据他们输入的内容限制结果。最近我们开始收到以下错误:

System.Web.HttpRequestValidationException: A potentially dangerous Request.Form value was detected from the client (ctl00$ContentPlaceHolder1$results_search="...967.hcpm, <a href="http://www....").

这个错误每天都在发生,这似乎是来自一个机器人,看这个错误似乎是机器人将 html ahref 链接放入搜索字段并尝试搜索,导致错误。

四处搜索后,我发现有两种方法可以处理此问题,使用 Jquery 或将 validateRequest 设置为 false,然后在代码隐藏页面中使用 htmlencode。有谁知道 jquery 代码是否适用于机器人?我不确定机器人是如何做到这一点的,如果它点击页面并点击按钮或以其他方式发送请求,因为按钮点击是导致回发触发搜索的原因,我们使用 POST 所以什么都不会发送搜索页面的 url,该页面只会回发给自己,搜索完成后回发。

最佳答案

在 web.config 文件的标记内,插入具有属性 requestValidationMode="2.0"httpRuntime 元素。

例子:

<configuration>
<system.web>
<httpRuntime requestValidationMode="2.0" />
</system.web>
</configuration>

关于c# - System.Web.HttpRequestValidationException : A potentially dangerous Request. 从机器人客户端检测到表单值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13842875/

相关文章:

asp.net - asp 文本框可见属性在代码隐藏中始终为 true

c# - 高级搜索 - url 编码

javascript - 如何检查字符串是否可能由机器人生成?

c# - 生产服务器上的 ASP.NET Identity session 过期过快

c# - anchor 标签的 OnClick 事件

c# - 配对两个阵列

c# - 未将对象引用设置为对象的实例 asp.net

c# - 如何在数组中找到一个项目,该项目之前所有值的总和是特定值? (C++ 和 C#)

c# - 在没有 ID 或名称的输入提交时触发 'click' 事件?

c# - ClosedXML 将列表中的数据插入现有的适当 Excel 表(命名范围)c#