Jam*_*ell 19 python django websocket django-channels
是否有任何具体可以帮助使Django Channels服务器不易受到轻微或意外的 DDoS攻击或来自websocket/HTTP客户端的一般负载增加的影响?由于频道不是真正的异步(仍然是幕后工作人员),我觉得要取消基于频道的网站是很容易的 - 即使使用相当简单的硬件.我目前正在Django频道上构建一个应用程序,稍后会运行一些测试来看看它是如何保持的.
达芙妮是否有某种形式的节流?我应该实现一些应用程序级别的限制吗?由于工作人员仍然处理受限制的请求,但这仍然很慢,但请求可以更快.我还能做些什么来试图阻止这些攻击吗?
我有一个想法是始终确保为特定通道指定工作人员 - 这样,如果websocket通道过载,HTTP仍将响应.
编辑:我很清楚低级DDoS保护是一个理想的解决方案,我理解DDoS攻击是如何工作的.我正在寻找的是一个内置于通道的解决方案,可以帮助处理增加的负载.也许Daphne能够扩展一个频道并缩小另一个频道以进行补偿,或者一种限制方法可以减少某个点之后每个请求的权重.
我正在寻找一个达芙妮/渠道特定的答案 - 关于DDoS或一般负载处理的一般答案不是我正在寻找的 - 关于这一点还有很多其他问题.
我还可以根据谁登录以及谁不登录来控制限制 - 未登录用户的限制可以提供帮助.
再次编辑:请阅读整个问题!我不是在寻找一般的DDoS缓解建议或低级方法的解释.我想知道达芙妮是否支持以下内容:
或者那种性质的东西.我也将直接与Channels社区联系,因为这可能不是这个问题的最佳位置.
我收到的答案从安德鲁·戈德温。他不使用 StackOverflow,所以我代表他在这里发布。
嗨,杰米,
目前,Channels 对节流的支持非常有限——它几乎包括用于传入连接的可调通道大小,当满时,将导致服务器返回 503 错误。由于通道设计,工作人员根据可用性进行负载平衡,因此没有工作人员获得比其他人更大的队列的风险。
提供更高级的 DoS 或 DDoS 保护可能不是我们在 Channels 本身范围内可以做的事情,但我想确保我们提供适当的钩子。您认为我们可以实施哪些特定的东西来帮助您编写一些您需要的东西?
(同样值得记住的是,作为主要重写的一部分,现在我们正在实质性地改变工人/消费者的布局,这意味着在扩展时会有不同的考虑,所以我现在不想给出太精确的建议)
安德鲁
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           960 次  |  
        
|   最近记录:  |