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

ant*_*liu 14 c# asp.net signalr

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

dav*_*owl 25

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

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

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

  • 它就在那里,让我重申一下"创建另一个唯一的id,并在内部存储从连接ID到你的id的映射,这样你就可以将它们映射回来." (6认同)