今天早上,我们的一个网站遭到了寻找漏洞的机器人的攻击。使用的是相同的 IP 地址。然而,该机器人平均每分钟只发出 12-16 个页面请求。受到攻击的不同页面包含 20-40 个静态资源,包括图像、css、js 等。
有了这些知识,在 IIS7.5 上启用动态 IP 限制的良好策略是什么?我知道我可以启用“仅日志记录模式”,但不完全确定如何最好地查看日志文件以解决此问题。
我不想做的是锁定我的用户而是中止对 BOT 的请求。
答案1
我们最近尝试为我们的一个大型网站设置动态 IP 限制模块,但这并不容易。当我看到原始问题的评论时,我不得不大笑起来“别浪费你的时间。“。这基本是事实。”
不过,我还是会给出一些提示,你需要注意以下事项:
- 您可能必须将页面调用与静态资产调用分开,即将后者移动到其自己的域,以将您设置的限制仅应用于页面加载而不是静态资产。
- 您需要仔细定义和测试您的请求拒绝标准 - 它是 10 个请求/1 秒还是 50 个请求/10 秒?12 个请求/60 秒很可能不是一个好的拒绝标准,因为它可能会影响很多合法用户。
- 使用“仅记录模式”复选框将把伪拒绝请求记录到 IIS 日志中,但状态代码为 200,子状态代码为 502(因此请确保记录了这些请求)。此外,高级日志模块将无法正确记录这些请求所以如果您想使用动态 IP 限制并且想要随时了解被拒绝的请求,那就别想使用它了。
- 您必须持续监视您的日志,并且最终可能必须将一些外部代理的 IP 地址列入白名单,以便将其后面的用户正确地视为单独的用户,而不是单个用户(使用代理的 IP)。
- 在达到请求限制后的一段时间内,您不能对客户端进行惩罚 - 一旦他们限制了请求,他们的请求就会再次通过。
我们一个多月前就开始尝试这个模块,但仍然没有关闭“仅记录模式”,因为有太多地方感觉不对劲或无法正常工作……