IIS 可以阻止特定用户代理请求网页吗?

IIS 可以阻止特定用户代理请求网页吗?

我们在 Windows Server 2003 上安装了 IIS 6.0,并安装了 ASP.NET Web 应用程序。我们的 Web 应用程序(具体来说是一个网页)正在遭受某种机器人攻击。查看 IIS 日志后,我们发现一个正在攻击的用户代理:
python-requests/0.13.2

#Fields: date time s-sitename s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) sc-status sc-substatus sc-win32-status

2012-07-17 23:59:59 W3SVC336290672 192.168.2.65 POST /MyVirtualDirectory/MyFolder/wf_Page_Under_Attack.aspx - 80 - 190.232.79.70 python-requests/0.13.2 200 0 0

是否有可能在 IIS 上阻止或拒绝对“python-requests/0.13.2”请求的访问?

答案1

没有内置功能可以完成您要查找的操作。

一个可以满足你需求的免费解决方案是Ionics Isapi 重写过滤器(IIRF)ISAPI 过滤器模块。他们甚至有示例配置根据 User-Agent 阻止访问

第二个选择是微软URL扫描(正如您在评论中指出的那样——我不记得它是否允许基于用户代理的逻辑)。这篇博文描述了如何使用 URLScan 根据用户代理阻止请求。我不认为 URLScan 可以根据正则表达式进行匹配,但是由于您正在寻找精确的字符串匹配,因此它也应该可以满足您的要求。

尽管如此,对于“机器人”作者来说,将他们的 User-Agent 字符串更改为“无害”的内容是轻而易举的事情。你正在迈出军备竞赛的第一步。

相关内容