如何有效地防止机器人请求或至少阻止它们堵塞我的日志?

时间:2015-06-02 22:52:14

标签: asp.net-mvc bots robots.txt elmah

我认为我得到的错误是由机器人引起的:

  • 将我之前的网站编入同一域名;和
  • 正在探索某种漏洞。

以下是一些错误:

  • 代码:404;输入:Http;错误:A public action method 'IPC$' was not found on controller ...
  • 代码:0;输入:InvalidOperation;错误:The requested resource can only be accessed via SSL.

以前存在的特定网址存在其他错误,但此后已被删除。

有没有办法阻止僵尸程序点击这些链接,还是我必须通过过滤出ELMAH中的特定请求来解决这个问题?

1 个答案:

答案 0 :(得分:1)

不幸的是,由于那里的机器人数量以及编码攻击或抓取您网站的各种方式,您将无法阻止所有这些错误。但是,您可以轻松选择忽略Elmah中特定类型的错误。以下是web.config文件的<elmah>部分中的过滤器示例:

<errorFilter>
  <test>
    <or>
      <and>
        <!-- filter all errors out that fall in the range 400-499 -->
        <greater binding="HttpStatusCode" value="399" type="Int32" />
        <lesser binding="HttpStatusCode" value="500" type="Int32" />
      </and>

      <regex binding="BaseException.Message" pattern="A potentially dangerous \b.+?\b value was detected from the client" caseSensitive="false" />

      <regex binding="BaseException.Message" pattern="he provided anti-forgery token was meant for user" caseSensitive="false" />        
    </or>
  </test>
</errorFilter>

这将过滤掉所有404等,仅包括小于400或大于499的错误,并排除一些通常由恶意机器人触发的特定.NET异常。从那里,你可以调整以适应......