我正在使用 nodejs 编写一个高度可扩展的基于浏览器的网络聊天服务器。所涉及的概念很简单——首先它检查浏览器是否支持 websocket。如果不支持或与服务器规范不兼容,它会优雅地降级为传统的长轮询。
利用其高度事件化的 I/O 模型,到目前为止,我找不到任何其他框架这么好并且适合 nodejs 来完成这种工作。但是,我有一个与 DOS 攻击有关的问题,我决定提出一个简单的解决方案。但是,我不确定这是否是对抗那些大规模洪水攻击的最理想方式。
我计划做的是 - 如果来自单个 IP 地址的 50 个或更多请求在特定时间长度(例如 1 秒)内到达服务器,然后拒绝来自该 IP 的所有进一步请求,直到该特定时间间隔达到失效等等。
这会好吗?