这可能更适合Serverfault,但许多只来这里的网络开发者可能会从这个问题的可能答案中受益。
问题是:您如何有效地保护自己免受针对您的网络服务器的拒绝服务攻击?
在阅读article
后,我问自己对于那些不熟悉的人,以下是我记得的内容:DoS攻击会通过反复向您的服务器发送虚假标头来尝试占用您的所有连接。
通过这样做,您的服务器将达到可能的同步连接的限制,因此,普通用户将无法再访问您的网站。
维基百科提供了更多信息:http://en.wikipedia.org/wiki/Denial_of_service
答案 0 :(得分:46)
没有灵丹妙药,但通过以下某些方法可以使DoS攻击变得更加困难:
请记住,彻底拒绝限制请求(例如,使用HTTP 503: Service Unavailable响应或适合您正在使用的任何协议的类似响应)而不是排队限制请求非常重要。如果你对它们进行排队,队列就会占用你所有的内存,DoS攻击至少和没有限制时一样有效。
HTTP服务器的一些更具体的建议:
POST
邮件而没有附带的Content-Length
标头,并拒绝超过规定Content-Length
的请求(并限制违规客户端),以及拒绝Content-Length
POST
(或PUT
)针对的服务不合理地长的请求答案 1 :(得分:1)
对于此特定攻击(只要请求是GET),基于负载均衡器或WAF只会根据Web服务器的完整请求生效。
当使用GET POST而不是GET POST时,问题就开始了(这很容易),因为你无法知道这是一个恶意的POST,还是只是用户上传的速度很慢。
从DoS本身来看,由于一个简单的事实,你无法真正保护你的webapp。您的资源有限,而攻击者可能拥有无限的时间和资源来执行DoS。大多数情况下,攻击者执行所需步骤的成本很低。例如上面提到的这种攻击有几百个缓慢运行的连接 - >没问题
答案 2 :(得分:1)
例如,异步服务器或多或少地对这种特定形式的攻击免疫。例如,我使用Nginx反向代理服务我的Django应用程序,攻击似乎并没有影响它的操作。另一个流行的异步服务器是lighttpd。
请注意,这种攻击很危险,因为它甚至可以通过连接速度慢的单台机器执行。但是,常见的DDoS攻击会使您的服务器受到大量机器攻击,并且您无法保护自己免受这些攻击。
答案 3 :(得分:0)
简短回答:
你无法保护自己免受DoS的攻击。</ p>
我并不同意它属于serverfault,因为DoS被归类为安全问题,并且与编程明确相关