如何阻止机器人发布和导致异常

And*_*eas 5 .net bots exception spam

我有一个表格,任何人都可以填写有关某事的评论,这个表格不在登录区域内.

在越来越多的机器人试图输入垃圾邮件之后,我开始使用验证码.现在的问题是,某种机器人并没有放弃.我每天都会收到大量异常电子邮件,因为机器人试图输入"危险"数据而.NET不允许这样做,因为请求已经过验证.验证码根本没用,因为它甚至不需要填写以试图发布会导致异常的帖子.机器人似乎并不理解它每次都会失败.

昨天我尝试更改文本框的名称,我还添加了一个"蜜罐".但它与验证码相同的问题,在实际发布到后面的代码之前发生异常.

我是否真的必须设置ValidateRequest ="false"以使机器人更进一步并可能停止发出请求?

所有的想法都非常感激.

Dom*_*icz 1

您可以:

  • 在页面上设置ValidateRequest="false",就开启了XSS的可能性。
  • 重写Page_Error(),然后捕获异常并以您自己的方式处理它。

我认为你可能必须将两者结合起来才能使其发挥作用。

protected void Page_Error(object sender, EventArgs e)
{
  Exception oops = Server.GetLastError();

  if(oops.GetBaseException() is System.Web.HttpRequestValidationException) 
  {
    System.Diagnostics.Debug.Assert(false);
  }
}
Run Code Online (Sandbox Code Playgroud)