【发布时间】:2015-05-13 02:20:25
【问题描述】:
我正在使用socket.io 构建一个聊天应用程序。如果客户在安全方面收到他们的对话者的套接字 id 可以吗?客户可以对这些信息做些什么吗?我的假设是否定的,因为只有服务器可以向其他客户端发送消息,但我是 Websocket 机制的新手,所以我并不完全了解所有可能性。
【问题讨论】:
-
我不明白为什么它会是一个安全问题,尽管我也不明白为什么客户端必须接收所有其他客户端的套接字 ID。这是由于
WebsocketAPI 的某些基本方面,还是因为您的服务器故意发送信息?在后一种情况下,您为什么要发送它/客户如何处理信息?您是否使用套接字 ID 作为正确用户 ID 的替身? -
socket id 不是直接发送的,而是用于形成一个唯一的字符串,即房间名称,并将该字符串传递给客户端(因此恶意人员可以理解房间名称包含套接字 id )。另外关于您的最后一个问题,将套接字 ID 直接用作用户 ID 是否是一种不好的做法? (前提是用户的生命周期只是会话的生命周期)
-
@Absurdev:好吧,如果这些房间应该是私人的,并且没有其他身份验证可以阻止加入私人房间而不是知道它的名字,那么是的,使用 public 是个坏主意id。
标签: javascript websocket socket.io