SignalR 连接 ID 可以伪造吗?

Can SignalR connection IDs be faked?

SignalR 中的连接 ID 是如何确定的?用户可以故意使用其他人的连接 ID 来冒充他们吗?

显然,确定另一个人的连接 ID 很困难,因为可能的 ID 太多了。但是,我的应用程序会让用户知道其他用户的连接 ID,因为该应用程序需要对等方进行交互,而我已将连接 ID 用作唯一用户 ID。

连接ID可以由用户选择吗?用户能否以某种方式切换到另一个已知 ID,或者是否有其他一些保护措施?

我指的是通过Context.ConnectionId获得服务器端的连接ID。

没有。连接 ID 由服务器分配。然而,除了连接 ID 之外,服务器还发送一个连接令牌,该令牌是使用包括连接 ID 在内的几条信息计算得出的。如果服务器收到连接 ID 和连接令牌不匹配的请求,该请求将被拒绝。如果您想了解 SignalR 协议的一般工作原理,请阅读 post I wrote some time ago . If you want more details on connection id and connection token read this.