我知道这个问题已经被问过很多次了,但在尝试了很多不同的潜在解决方案后我真的很挣扎。
我有一个 c# ASP.net 网站页面。那里有一个带有提交按钮的表单。所有代码都在代码隐藏页面中。
我们没有收到通过表单提交的任何垃圾邮件,因为我有一个捕获元素。然而 - 垃圾邮件机器人正在扫描页面,获取字段名称并直接发布到页面。
我只知道这个是因为我设置了 Application_Error
通过电子邮件向我报告任何错误(在 global.asax 中)。
我曾尝试更改我的字段名称 - 但他们只会选择新字段。
我把<httpRuntime requestValidationMode="2.0" />
在 web.config 中。
在我的页面中,我有 EnableEventValidation="False"
但是 - 正如我所说,问题是不允许在发布数据中使用 html,它试图阻止垃圾邮件机器人直接提交到页面。它甚至在页面加载之前就被触发了(我认为)。
我的想法已经用完了!我在我们的防火墙上每 10 分钟阻止一次 ip 范围。我不能再这样做了!
感谢您的帮助!
最佳答案
这就是您要做的:忽略它。屏蔽 IP 只会让你原地踏步,最终是浪费时间。
如果实际上没有提交垃圾邮件,那么您真的没有问题。该框架正在做它应该做的事情。
坦率地说,除非它阻止实际用户执行他们需要执行的操作,否则我不会费心调查这样的错误消息。
如果您真的只是想让错误消失,那么您需要执行以下操作:
- 设置
EnableEventValidation="true"
- 设置
ValidateRequest="false"
EnableEventValidate
告诉 .net 查看帖子是否来自点击它呈现的控件。这应该有助于防止直接发帖。
ValidateRequest
告诉 .net 是否测试 html 和其他“危险”字符的输入。将其关闭将停止您的错误消息。
如果您只是想让垃圾邮件发送者停止访问您的网站:请关闭该网站。因为这是让垃圾邮件制造者远离它的唯一可靠方法。
关于c# - 页面加载前 "A potentially dangerous Request.Form value was detected from the client",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20687959/