【问题标题】:Security of "Rooms" in the Node.js library "Socket.IO"Node.js 库“Socket.IO”中“房间”的安全性
【发布时间】:2021-12-21 00:05:25
【问题描述】:

我们正在考虑使用 Node.js 库“Socket.IO”中的“Rooms”开发应用程序。

当有多个房间时 分配 ID 以标识套接字所属的房间,但我们认为存在通过“会话劫持”和通信被劫持等方法泄露 ID 的危险。

有没有办法在确保安全的同时使用“房间”?

参考网址 https://socket.io/docs/v3/rooms/

【问题讨论】:

    标签: node.js sockets security websocket socket.io


    【解决方案1】:

    房间是一种仅限服务器的数据结构。客户无权访问房间的概念。没有多少会话劫持可以让任何客户直接访问房间。

    因此,您的服务器控制对房间的所有访问。数据仅存在于服务器的内存中。该数据的安全性将完全取决于您的服务器的安全性。

    现在,您的服务器可能会访问房间以响应来自您的客户端的消息,因此您必须对来自客户端的命令进行安全可靠的设计。由于您根本没有提供任何相关信息,我们无法对此发表评论,但这确实与房间概念无关 - 这是您应用设计的基本安全性。


    注意:给定套接字的内部 socket.id 是客户端自己知道的 - 换句话说,它知道自己的 socket.id。 socket.io 不会与任何其他客户端共享其他客户端的 ID。但是,即使其他人会以某种方式窃取该 socket.id,他们也无法通过 socket.io 对它进行本地处理,因为根本没有 socket.io 客户端直接访问房间,即使您有一个 socket.id。

    【讨论】:

      猜你喜欢
      • 2018-01-16
      • 2012-12-08
      • 2013-10-10
      • 2017-10-20
      • 2014-07-29
      • 1970-01-01
      • 2023-03-27
      • 2014-02-23
      • 2019-05-13
      相关资源
      最近更新 更多