我们的 ASP.NET 网站托管在 Windows Server 2008 和 IIS7 上。
最近,我们遇到了来自某些 IP 的“攻击”问题,这些 IP 通过提交带有无效参数的不同表单会产生很多错误。
我希望能够根据从 asp.net 代码生成的列表在 24 小时内阻止 IP 地址列表。我知道可以使用 Web.config - ipSecurity Tag 来实现这一点。我找到了以下示例:
http://www.dantor.com/support/misc/web-config-ip-address-restriction.aspx
问题是更改/更新 web.config 将导致网站重新启动/回收。
是否可以在没有池回收的情况下更新被阻止的 IP 列表?
编辑:
也许一个更好的主意是使用 HttpModule 来实现它——Scott Hanselman 在他的博客中写了一篇关于这个主题的文章: http ://www.hanselman.com/blog/AnIPAddressBlockingHttpModuleForASPNETIn9Minutes.aspx
您认为这会导致性能下降吗?通过 httpmodule 路由所有网站请求可能会影响页面加载时间?关于如何完成这项工作的任何其他想法?
编辑2:
该网站受到 Fortigate 200a 防火墙的保护,但据我所知,防火墙无法自动阻止产生错误的 IP 或尝试进行 SQL 注入。