垃圾邮件套接字 io 连接

sup*_*777 0 sockets spam node.js

如何防止有人像这样发送垃圾邮件套接字连接:

for (let i = 0; i < 10000000; i++) {
    io.connect('ws://localhost:9001');
}
Run Code Online (Sandbox Code Playgroud)

我已经用谷歌搜索过,但所有主题都在讨论如何emit通过速率限制等来防止。但是如果有人发送垃圾邮件连接而不是发送垃圾邮件消息,则无法使用速率限制。有什么解决方案或提示吗?谢谢

Ani*_*mir 5

每个 websocket 连接请求的第一步都是 HTTP GET 握手请求,因此您可以通过 IP 限制负载均衡器/代理服务器上的请求数量。在到达您的申请之前,所有超出限制的请求都将被拒绝。例如,请在此处阅读有关如何使用 Nginx Web 代理执行此操作的信息。

如果您不能或不想设置代理服务器,您可以使用rate-limiter-flexibleexpress-rate-limit等软件包在应用程序级别上执行相同的操作。

io.on('connection', function (socket) {
  // rate limit here by IP or user ID
});
Run Code Online (Sandbox Code Playgroud)