将其他用户的连接ID返回给客户端的任何风险?

时间:2012-07-26 05:58:29

标签: c# asp.net signalr

在SignalR Hub类中,您可以为用户调用Context.ConnectionId。我希望将这些存储在Dictionary<string, string>中,以便将用户连接在一起。将其他用户的clientid返回给用户的客户端是否存在风险或安全漏洞?

1 个答案:

答案 0 :(得分:25)

是的,我们在一些样本中这样做,但这很糟糕。如果您泄漏了连接ID,那么人们可以在您的连接上发送/接收您的消息。创建另一个唯一的ID,并在内部存储您的ID和连接ID之间的映射,以便您可以将它们映射回来。

它与表单身份验证票基本相同。当然它是加密的,但如果有人得到它,他们可以冒充你。

在MessengR中查看此逻辑的示例。 https://github.com/davidfowl/MessengR/blob/master/MessengR/Hubs/Chat.cs#L67