如何保护网站免受DoS攻击

时间:2010-11-24 00:15:38

标签: security web-applications

保护站点形式DoS攻击的最佳方法是什么?知道流行的网站/服务如何处理这个问题?

应用程序,操作系统,网络,托管级别中的工具/服务是什么?

如果有人可以分享他们处理的实际经验,那就太好了。

由于

4 个答案:

答案 0 :(得分:3)

我从来没有处理过这个问题,但是一个常见的方法是编写一小段代码来跟踪在很短的时间内发出大量请求并在处理实际发生之前拒绝它们的IP地址

许多托管服务提供此功能以及托管服务,请与他们联系以查看他们是否这样做。

答案 1 :(得分:3)

当然你的意思是DoS没有注射?在Web编程端没有太多可以阻止它们,因为它更多的是绑定连接端口并在物理层阻塞它们而不是在应用层(Web编程)。

关于大多数公司如何阻止它们,很多公司都使用负载平衡和服务器群来取代带来的带宽。此外,许多智能路由器正在监控来自IP和IP范围的活动,以确保没有太多的查询进来(如果是这样,在它到达服务器之前执行一个块)。

尽管如此,我能想到的最大的故意DoS是woot.com。我建议尝试维基百科(http://en.wikipedia.org/wiki/Denial-of-service_attack#Prevention_and_response),看看他们对预防方法的看法。

答案 2 :(得分:3)

我在应用程序层实现了一次。我们通过服务向服务器场提供了所有请求,服务器中的每台机器都可以向其发送请求信息。然后,我们处理这些请求,按IP地址聚合,并自动标记任何超过每个时间间隔一定数量请求阈值的IP地址。来自标记IP的任何请求都得到了标准的Captcha响应,如果它们失败次数太多,它们将被永久禁止(如果从代理后面获得DoS,则会很危险。)如果他们证明他们是人类,那么与他们的IP有关的统计数据被“归零”。

答案 3 :(得分:1)

嗯,这是一个旧的,但是想要这样做的人可能想看看fail2ban

http://go2linux.garron.me/linux/2011/05/fail2ban-protect-web-server-http-dos-attack-1084.html

这更像是一个服务器故障的答案,而不是将其构建到您的应用程序中,但我认为这种问题最有可能以这种方式更好地解决。如果您想要阻止的逻辑很复杂,请考虑让您的应用程序只记录足够的信息以实施禁止策略操作,而不是试图使策略生效。

还要考虑到,根据您使用的Web服务器,您可能容易受到slow loris攻击等攻击,并且您无法在Web应用程序级别执行此操作。