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