【问题标题】:Spam socket io connections垃圾邮件套接字 io 连接
【发布时间】:2020-01-17 05:04:23
【问题描述】:

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

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

我已经用谷歌搜索了,但所有主题都在谈论如何通过速率限制等来防止emit。但是如果有人发送垃圾邮件而不是垃圾邮件,则不能使用速率限制。对此有任何解决方案或提示吗?谢谢

【问题讨论】:

    标签: node.js sockets spam


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-13
      • 1970-01-01
      • 1970-01-01
      • 2013-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-14
      相关资源
      最近更新 更多