RuS*_*uSh 5 c# iis iis-7 windows-server-2008 ip-restrictions
我们的ASP.NET网站托管在Windows Server 2008和IIS7上.
最近我们遇到了某些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防火墙保护,但据我所知,防火墙无法自动阻止生成错误或尝试进行SQL注入的IP.
是否可以在没有池回收的情况下更新阻止的IP列表?
我要把我的脖子伸到这里然后说它不是.
您认为使用HttpModule会导致性能下降吗?
是.一个重要的,可能不是.但请确保IP地址查找部分非常有效.例如,在HashSet中缓存列表,不要每次都从文件中读取列表.
问题是您仍在使用Web请求处理能力来抵御duff请求.但是,如果您不阻止IP,这可能比您查找请求是否为duff的处理要少,因此总体而言,它实际上可能是性能提升.但是,您可能会从这些IP地址收到如此多的请求,从而使您的服务器瘫痪.
其他选择
可以安装软件防火墙或使用Windows内置防火墙.
正如其他人所说,获得硬件防火墙将完全消除服务器的负担.您可以获取可由Web服务器动态更新的内容以禁用IP地址.虽然我从未使用过,但不能推荐一个或评论它们的工作情况.如果您使用的是基于云的设置,则可能需要与服务提供商讨论他们可以执行的操作.
关于更新防火墙需要考虑的一件事是,您是否真的希望允许您的Web应用程序获得更新防火墙的安全权限?听起来像是一个等待发生的安全漏洞所以要非常小心这是如何完成的,并确保安全权限只允许将IP添加到阻止列表中.
如果你真的受到了重创,你可以通过VeriSign这样的第三方ddos保护服务来路由你的所有流量.但是期望为这个特权付出代价.
App池回收这么糟糕吗?
我刚刚遇到的其他问题是,应用程序池的回收可能没有您想象的那么糟糕.假设您使用的是共享状态服务器,那么很可能您的用户都不会注意到这种情况.原因是IIS通常在回收期间短时间并行运行两个进程,以便新进程处理新请求,并且已经开始的请求在旧进程上完成.只有当旧的进程处理了所有未完成的请求时,IIS才会将其终止.只要您没有将状态存储在内存中,这通常意味着您站点的用户不会注意到切换.
| 归档时间: |
|
| 查看次数: |
1390 次 |
| 最近记录: |