Python Django通道的负载尖峰保护

Python Django通道的负载尖峰保护,python,django,websocket,django-channels,Python,Django,Websocket,Django Channels,是否可以采取任何具体措施来帮助Django Channel服务器降低受轻微或意外DDoS攻击或websocket/HTTP客户端负载增加的影响?由于频道不是真正的异步(仍然是幕后工作者),我觉得关闭一个基于频道的网站非常容易——即使使用相当简单的硬件。我目前正在Django通道上构建一个应用程序,稍后将运行一些测试,看看它是如何运行的 Daphne有没有内置的节流装置?我是否应该实施一些应用程序级限制?这仍然会很慢,因为工作进程仍然处理限制请求,但是请求可以快得多。我还能做些什么来阻止这些攻击吗

是否可以采取任何具体措施来帮助Django Channel服务器降低受轻微或意外DDoS攻击或websocket/HTTP客户端负载增加的影响?由于频道不是真正的异步(仍然是幕后工作者),我觉得关闭一个基于频道的网站非常容易——即使使用相当简单的硬件。我目前正在Django通道上构建一个应用程序,稍后将运行一些测试,看看它是如何运行的

Daphne有没有内置的节流装置?我是否应该实施一些应用程序级限制?这仍然会很慢,因为工作进程仍然处理限制请求,但是请求可以快得多。我还能做些什么来阻止这些攻击吗

我的一个想法是始终确保为特定通道指定了工作人员——这样,如果websocket通道过载,HTTP仍将响应

编辑:我很清楚低级别DDoS保护是一个理想的解决方案,我了解DDoS攻击是如何工作的。我所寻找的是一个内置于通道中的解决方案,它可以帮助处理像这样不断增加的负载。也许是Daphne放大一个通道并缩小另一个通道以进行补偿的能力,或者是一种节流方法,可以在某一点后减少每个请求的重量

我正在寻找daphne/频道特定的答案-关于DDoS或一般负载处理的一般答案不是我想要的-关于这一点还有很多其他问题

我还可以根据谁登录和谁未登录来控制节流-为未登录的用户设置节流可能会有所帮助

再次编辑:请阅读整个问题!我不寻求一般DDoS缓解建议或低级别方法的解释。我想知道达芙妮是否支持这样的东西:

  • 节流
  • 基于队列大小的动态工作人员分配
  • 为经过身份验证的请求提供优先级的中间件

或者类似的东西。我还将就此直接联系渠道社区,因为这可能不是回答这个问题的最佳场所。

我只回答第一个问题。因此,基本上不可能100%免受ddos攻击,因为这总是归结为一场资源之战。如果服务器端资源大于攻击者端资源,服务器将不会停机(但可能会降低性能),但如果不是,服务器将停机[无需参考]。你可能会问,为什么不可能得到100%的保护。所以基本上,如果人们无法连接到你的服务器,你的服务器就会“崩溃”[---网络服务器崩溃第1句。]。因此,如果您试图通过在每秒10000次连接时关闭服务器5分钟来保护服务器,则ddos成功。它“崩溃”了你的服务器。据我所知,唯一能起作用的ddos保护是Cloudfare()。它通过10Tbps的网络主干吸收ddos攻击的影响。但即使是它也不能提供100%的ddos保护,因为一旦它的10Tbps停机,您的服务器也会停机。因此,我希望这能有所帮助。

DDoS=分布式拒绝服务

“分布式”部分是关键:你不可能知道你正在受到“某人”的攻击,因为请求来自各地

您的服务器将只接受一定数量的连接。如果攻击者成功创建了如此多的连接,以至于没有其他人可以连接,那么您就是在遭受DDoS攻击

因此,本质上,您需要能够检测到连接不合法,或者需要能够快速扩展以补偿连接数量的限制

祝你好运

DDoS保护实际上应该是您的云提供商在负载平衡器级别提供的一项服务

像OVH这样的公司使用复杂的机器学习技术来检测非法流量,并禁止IP以准实时的方式运行。
对你来说,建立这样一个检测机制是一项巨大的投资,可能不值得你花时间(除非你的网站非常关键,如果它稍微下降一点,就会损失数百万美元)

关于DDOS,你有很多事情做不到。不过,根据你拥有多少资源,有一些巧妙的“窍门”,还有有多少人想让你离线

您是否提供需要直接连接到您试图保护的资源的全面公共服务

如果是这样的话,您只需要利用现有资源“吸收”DDOS,通过扩展和扩展。。。甚至有弹性。。。不管怎样,这都要花你的钱

或者使攻击者更难使用您的资源。有很多方法可以做到这一点

如果您的服务需要某种身份验证,请将身份验证服务与您试图保护的资源分开

许多应用程序、身份验证和“服务”都在同一硬件上运行。这是一个等待发生的事情

仅允许完全经过身份验证的用户使用动态防火墙过滤规则访问您试图保护的资源。如果您的身份验证成功,那么通往资源的大门将打开(具有受限的QOS)!如果您的用户是知名的、长期受信任的用户,那么请全力以赴访问资源

有一种方法可以审核用户的资源行为(网络、内存、cpu),如果您看到特定帐户使用了奇怪的数量,请禁止它们,或施加限制,最终导致对其流量采用防火墙丢弃策略

请与ISP合作,该ISP可以在ISP边界处安装系统,使通信量达到您的规格。。。。OVH是你最好的选择。一个ISP,公开过滤器和流量下降作为一个API,我希望他们存在。。。基本上将防火墙过滤规则移动到A