拒绝快速访问该网站

时间:2014-04-17 15:44:07

标签: asp.net asp.net-mvc asp.net-mvc-5

我有一个Asp.Net MVC 5.1网站。有些人写了一些机器人来下载整个网站,更糟糕的是,他们并没有停止。我想知道如果访问速度太快,我怎么能拒绝访问网站上的任何操作。 “太快”我指的是一种人类不可能的速度。例如每秒一次。我认为这是任何网站的常见问题。哪种方法可以实现这种限制?

PS:我的网站是在VPS上,如果有办法在那里我可以完全访问IIS。

2 个答案:

答案 0 :(得分:2)

如果您使用HttpModule,则可以在遇到任何操作或任何操作之前过滤每个请求。

然而,你会遇到过多的问题,这些问题可能会使你的尝试弊大于利。

  1. 每当浏览器加载页面时,它还会加载与该页面关联的资源。您是否愿意冒险在您的网站上破坏图像和CSS?
  2. 搜索引擎展示了您描述的行为。您不希望您的网站可以搜索吗?
  3. 您使用什么标准来确定是否是尝试下载您网站上各个网页的同一实体?如果您使用IP地址,这将对某些机器人起作用,但它也适用于与同时访问您网站的其他人使用共享互联网连接的人。而更复杂的机器人将使用技巧来解决这个问题。
  4. 所以你必须考虑一个关键问题:这些机器人扫描你的网站造成的伤害是什么?

    1. 如果他们正在锤击您的服务器,那么该行为与拒绝服务攻击更为一致,在这种情况下,您应该了解如何防止这些行为。
    2. 如果他们在未经您许可的情况下获取您受版权保护的数据并将其显示在自己的网站上,那么您可能需要考虑合法选项,或向搜索引擎报告他们的滥用情况,以便他们不会从您的成果中获得成功劳动力。
    3. 如果它是“以上都不是”那么你应该忽略它们。

答案 1 :(得分:1)

如果您有权访问IIS(至少是v7),请尝试以下操作:

转到" IP地址和域限制",然后(在右侧)选择"编辑动态限制设置"。

然后您可以根据一段时间内的请求数和/或并发请求数拒绝IP地址。

因此,如果有人在不到一秒的时间内连接了你(例如)20次,它将自动拒绝访问该IP地址。

如果您没有看到它,可能需要安装该模块instructions here