我想保护某些端点免遭黑客攻击以及DoS / DDoS攻击,例如登录,重置密码,注册。
我想实现具有线性或指数补偿(不限制)的延迟(即r
):
我之前已经做过,但是没有在节点上做过。
我意识到,由于节点中没有线程池,攻击者无法通过启动1000个并发请求来饿死我的线程池。
但是,每个请求都会导致分配少量的内存。因此,攻击者可能发起1000个并发请求,并耗尽我服务器的内存。
我的理解正确吗?是否有一种优雅的方式来处理此问题,或者它是不可避免的(所以我应该接受它,或者考虑使用诸如节流的替代方法)?
答案 0 :(得分:2)
在应用程序级别添加DDoS安全性是不好的做法。这应该由先前的层来实现,例如。 WAF / Cloudflare。
当您提供大量数据时,节流非常有用。对于HTML内容,很难将其视为真正的安全性。最好限制同时连接的数量,例如在nginx中。
仅最后,您可以在应用程序中实施限制。 这不应该拖延。您的目标是尽快处理该请求。因此,引入了某种形式的速率限制( HTTP 429请求太多)
答案 1 :(得分:1)
最好在Web服务器代理/平衡器级别上防御DDoS。
可以使用rate-limiter-flexible来保护暴力破解,这里是login protection example和an article with more examples