我有一个Asp.Net MVC 5.1网站。有些人写了一些机器人来下载整个网站,更糟糕的是,他们并没有停止。我想知道如果访问速度太快,我怎么能拒绝访问网站上的任何操作。 “太快”我指的是一种人类不可能的速度。例如每秒一次。我认为这是任何网站的常见问题。哪种方法可以实现这种限制?
PS:我的网站是在VPS上,如果有办法在那里我可以完全访问IIS。
答案 0 :(得分:2)
如果您使用HttpModule
,则可以在遇到任何操作或任何操作之前过滤每个请求。
然而,你会遇到过多的问题,这些问题可能会使你的尝试弊大于利。
所以你必须考虑一个关键问题:这些机器人扫描你的网站造成的伤害是什么?
答案 1 :(得分:1)
如果您有权访问IIS(至少是v7),请尝试以下操作:
转到" IP地址和域限制",然后(在右侧)选择"编辑动态限制设置"。
然后您可以根据一段时间内的请求数和/或并发请求数拒绝IP地址。
因此,如果有人在不到一秒的时间内连接了你(例如)20次,它将自动拒绝访问该IP地址。
如果您没有看到它,可能需要安装该模块instructions here。