有没有什么特别的方法可以帮助Django Channels服务器不那么容易受到来自websocket/HTTP客户端的轻微或意外的DDoS攻击或一般负载增加的影响?由于频道并不是真正的异步的(仍然是幕后工作者),我觉得即使使用相当简单的硬件,也很容易关闭一个基于频道的网站。我目前正在Django频道上构建一个应用程序,稍后将运行一些测试,以了解它的运行情况。在
达芙妮有没有某种形式的节流装置?我应该实现一些应用程序级别的限制吗?这仍然很慢,因为工作线程仍然处理被限制的请求,但是请求可以快得多。我还能做些什么来阻止这些袭击吗?在
我的一个想法是始终确保有为特定通道指定的工作线程—这样,如果websocket通道过载,HTTP仍然会响应。在
编辑:我很清楚低级别的DDoS保护是一个理想的解决方案,我了解DDoS攻击是如何工作的。我要找的是一个内置在通道中的解决方案,可以帮助处理这样增加的负载。也许是Daphne扩展一个通道并缩小另一个通道以进行补偿的能力,或者是一种节流方法,可以在某一点之后减少每个请求的权重。在
我在寻找daphne/channels特定的答案-关于DDoS或一般负载处理的一般答案不是我要找的-关于这方面还有很多其他问题。在
我还可以根据谁已登录和谁没有登录来控制流量限制-对于未登录的用户,一个节流阀可能会有所帮助。在
再次编辑:请阅读整个问题!我不是在寻找一般的DDoS缓解建议或对低级方法的解释。我想知道Daphne是否支持以下内容:
或者类似的东西。我也将直接联系频道社区,因为这可能不是这个问题的最佳地点。在
我只回答第一个问题。因此,基本上不可能100%地受到ddos攻击的保护,因为这总是归结为一场资源之战。如果服务器端资源大于攻击者端资源,则服务器不会停机(尽管性能可能会降低),但如果不是,则服务器会停机[无需引用]。你可能会问,为什么不可能做到100%的保护。所以基本上你的服务器“崩溃”如果人们不能连接到它[https://en.wikipedia.org/wiki/Crash_(computing)#Web_server_crashes---Web服务器崩溃句子1]。因此,如果您试图通过每秒钟关闭10000个连接来保护服务器5分钟,ddos就成功了。它“崩溃”了你的服务器。据我所知,只有Cloudfare(https://www.cloudflare.com/lp/ddos-b/?_bt=207028074666&_bk=%2Bddos%20%2Bprotection&_bm=b&_bn=g&gclid=EAIaIQobChMIu5qv4e-Z1QIVlyW9Ch2YGQdiEAAYASAAEgJbQ_D_BwE)才应该起作用。它利用其10Tbps的网络主干吸收ddos攻击的影响。但即使是它也不能提供100%的ddos保护,因为一旦它的10Tbps宕机,你的服务器也会宕机。所以,我希望这有帮助。在
我收到了来自Andrew Godwin的answer。他不使用StackOverflow,所以我代表他把它贴在这里。在
他还在他的blog中写了关于2.0迁移的文章。在
分布式拒绝服务
“分布式”部分是关键:你不知道自己受到了“某人”的攻击,因为请求来自各地。在
您的服务器只接受一定数量的连接。如果攻击者成功地创建了这么多其他人都无法连接的连接,那么您将被DDoS攻击
因此,本质上你需要能够检测到一个连接不合法,或者你需要能够快速扩展以补偿连接数量的限制。在
祝你好运!在
DDoS保护应该是云提供商在负载平衡器级别提供的服务。在
像OVH这样的公司使用复杂的机器学习技术来检测非法流量,并禁止IPs以准实时的方式运行。 对你来说,建立这样一个检测机器是一项巨大的投资,可能不值得你花时间(除非你的网站是如此关键,如果它关闭一段时间就会损失数百万美元)
相关问题 更多 >
编程相关推荐