nodejs服务器抵御DOS攻击

spa*_*n12 10 javascript denial-of-service node.js

我正在使用nodejs编写一个高度可扩展的基于浏览器的Web聊天服务器.涉及的概念很简单 - 首先它检查浏览器是否支持websocket.如果没有支持或以其他方式与服务器规范不兼容,它只是优雅地降级到传统的长轮询.

利用其高度优化的I/O模型,我找不到任何其他框架到目前为止这样的工作非常好和适合nodejs.但是,我有一个与DOS攻击有关的问题,我决定提出一个简单的解决方案.但是,我不太确定它是否是抵御那些大规模洪水攻击的最理想方式.

我计划做的是 - 如果源自单个IP地址的50个或更多请求在特定时间长度内(例如1秒)命中服务器,则拒绝来自该IP的所有进一步请求,直到该特定时间间隔到达失效等.

这会好吗?

Mik*_*uel 5

这不涉及DDOS攻击 - 分布式拒绝服务 - 使用许多IP,以及何时需要继续提供与攻击中涉及的计算机位于同一防火墙内的某些计算机.

DDOS中使用的机器通常都是被接管的僵尸机器.当针对大型目标的DDOS启动时,每IP限制可能会禁止来自同一防火墙LAN的所有计算机.例如,当纽约时报的机器被感染并在DDOS中使用时,这可能会给大公司带来非常糟糕的公关,而且时代的记者检查该公司的网站是否已关闭,并且被阻止导致他们报告这次袭击比实际上更成功.

要继续在DDOS面前提供服务,您确实需要根据请求本身的公共元素来阻止请求,而不仅仅是IP. security.se可能是有关如何做到这一点的具体建议的最佳论坛.