2010-11-24 117 views
9

什么是保护网站形式DoS攻击的最佳方法。任何想法如何流行的网站/服务处理这个问题?如何保护网站免受DoS攻击

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

如果有人能够分享他们处理的真实体验,那将会很不错。

感谢

回答

3

当然,你的意思是不注射DoS?在Web编程的最后阶段,你可以做的事情不多,因为它更多的是在物理层绑定连接端口并阻止它们,而不是在应用层(网络编程)。

关于大多数公司如何防范这些问题,许多公司都使用负载均衡和服务器场来取代进入的带宽。另外,很多智能路由器都在监视IP和IP范围内的活动,以确保没有没有太多的查询进来(如果是这样的话,在它进入服务器之前执行一个块)。

最大的故意DoS我能想到的是woot.com在woot-off期间。我建议尝试维基百科(http://en.wikipedia.org/wiki/Denial-of-service_attack#Prevention_and_response),看看他们有什么要说的预防方法。

3

我从来没有对尚未解决这个问题,但一个共同的方法是编写一小段代码来跟踪在短时间内使大量请求的IP地址,在处理实际发生之前否认它们。

许多托管服务提供此与托管一起,检查与他们看看他们是否。

+2

只是想知道,如果攻击者欺骗ip地址,那么这种技术将没有多大的帮助...我刚刚听说ip欺骗可以完成,但不知道它会是多么实用 – Mahes 2010-11-24 03:45:45

+1

如果你的攻击者发送恶意数据包在他/她处于分组路由信息的低级别,那么我能想到的唯一方法是检查畸形的TCP数据包或HTTP请求,因为攻击者通常会忽略一些细节以节省速度。当然这是一个巨大的痛苦,所以它的有用性取决于你害怕多少DDoS攻击。 – Actorclavilis 2010-11-24 14:37:34

3

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

1

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

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

这更是一个serverfault某种答案的,而不是构建到应用程序中,但我认为这是有点问题,就是最有可能更好的解决的方式。如果您想阻止的逻辑很复杂,那么可以考虑让应用程序记录足够的信息,以便将禁止策略操作作为基础,而不是试图使策略生效。

还要考虑到,根据您使用的网络服务器,您可能容易遭受诸如slow loris攻击之类的攻击,并且您在Web应用程序级别无法做到这一点。

相关问题