在SignalR Hub类中,您可以为用户调用Context.ConnectionId
。我希望将这些存储在Dictionary<string, string>
中,以便将用户连接在一起。将其他用户的clientid返回给用户的客户端是否存在风险或安全漏洞?
答案 0 :(得分:25)
是的,我们在一些样本中这样做,但这很糟糕。如果您泄漏了连接ID,那么人们可以在您的连接上发送/接收您的消息。创建另一个唯一的ID,并在内部存储您的ID和连接ID之间的映射,以便您可以将它们映射回来。
它与表单身份验证票基本相同。当然它是加密的,但如果有人得到它,他们可以冒充你。
在MessengR中查看此逻辑的示例。 https://github.com/davidfowl/MessengR/blob/master/MessengR/Hubs/Chat.cs#L67