c# - 页面加载前 "A potentially dangerous Request.Form value was detected from the client"

标签 c# asp.net application-error

我知道这个问题已经被问过很多次了,但在尝试了很多不同的潜在解决方案后我真的很挣扎。

我有一个 c# ASP.net 网站页面。那里有一个带有提交按钮的表单。所有代码都在代码隐藏页面中。

我们没有收到通过表单提交的任何垃圾邮件,因为我有一个捕获元素。然而 - 垃圾邮件机器人正在扫描页面,获取字段名称并直接发布到页面。

我只知道这个是因为我设置了 Application_Error通过电子邮件向我报告任何错误(在 global.asax 中)。

我曾尝试更改我的字段名称 - 但他们只会选择新字段。

我把<httpRuntime requestValidationMode="2.0" />在 web.config 中。

在我的页面中,我有 EnableEventValidation="False"

但是 - 正如我所说,问题是不允许在发布数据中使用 html,它试图阻止垃圾邮件机器人直接提交到页面。它甚至在页面加载之前就被触发了(我认为)。

我的想法已经用完了!我在我们的防火墙上每 10 分钟阻止一次 ip 范围。我不能再这样做了!

感谢您的帮助!

最佳答案

这就是您要做的:忽略它。屏蔽 IP 只会让你原地踏步,最终是浪费时间。

如果实际上没有提交垃圾邮件,那么您真的没有问题。该框架正在做它应该做的事情。

坦率地说,除非它阻止实际用户执行他们需要执行的操作,否则我不会费心调查这样的错误消息。


如果您真的只是想让错误消失,那么您需要执行以下操作:

  1. 设置EnableEventValidation="true"
  2. 设置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/

相关文章:

c# - 如何从弹出窗口返回值

javascript - 在 JavaScript 中使用 if 子句查询刷新后的 UpdatePanel

c# - session 状态在 Global.asax 的上下文中不可用

C# 应用程序调用 C++ 方法,错误 : PInvoke: Cannot return variants

具有多个系列的 c# 图表

C# DataGridView 检查是否为空

javascript - 周数点击日期

asp.net - Server.Transfer ("error_404.aspx") 在 Application_Error 中返回空白页

c# - System.Web.HttpUtility.UrlEncode/UrlDecode ASP.NET 5 的替换