socket.io 或 websocket 与 express 服务器一起使用是否安全?

问题描述

我想有一个用 express 制作的实时系统,我开始了解 socket.io 和 websockets。但是它们的使用方式,即 const io = socket.io("https://example.com") ;

使用安全吗?由于套接字连接的 url 在客户端可用,因此任何第三方服务都可以通过从他们的服务连接来享受和利用这些服务。我对 socket.io 不太了解,如果我错了,请纠正我。

请不要将这个问题标记为重复,因为我发现了一个类似的问题,但它的答案与游戏开发有关,这里我具体介绍了在服务器端有任何更新时更新客户端。客户端可能是用 angular 制作的网站或用 Android studio 制作的应用程序。 任何帮助都值得高度赞赏。

解决方法

socket.io 被广泛使用。它非常适合用于生产。

关于认证部分,通过http升级请求(在http/1.1中)建立一个websocket连接b/w客户端和浏览器。 如果您使用 cookie 和 session 为您的应用程序设置了身份验证机制,那么您应该是安全的。没有人可以在没有先登录的情况下直接建立 websocket 连接。此外,您可以限制每个用户的连接,以确保注册用户不能使用 cookie 数据进一步利用连接。