暴露 SignalR 连接 ID 是否存在安全风险

问题描述 投票:0回答:2

我正在开发一个使用信号器的聊天应用程序。我通过每个用户的connectionid 来关联他们。

我只是想知道如果我广播所有用户的connectionid,以便任何人都可以在代码中看到它们,有人会造成任何问题吗?

security signalr
2个回答
4
投票

据我所知,共享连接 ID 并不是安全风险,但共享 连接令牌 却是一个安全风险。

根据我自己对 SignalR 的测试,如果会话经过身份验证(这也是为什么您需要在身份验证后重新连接)。

仅通过替换连接令牌,我就能够成功地从另一个 IP 上的另一台计算机上使用 2.0.2 版本欺骗 SignalR 连接。


0
投票

根据最新文档,这里旧接受的答案是错误的,其中指出:

如果 SignalR 服务器或客户端版本是 ASP.NET Core 2.2 或更早版本,暴露 ConnectionId 可能会导致恶意冒充。如果SignalR服务器和客户端版本是ASP.NET Core 3.0或更高版本,则必须对ConnectionToken而不是ConnectionId保密。 ConnectionToken 故意不在任何 API 中公开。很难确保较旧的 SignalR 客户端不会连接到服务器,因此即使您的 SignalR 服务器版本是 ASP.NET Core 3.0 或更高版本,也不应公开 ConnectionId。

© www.soinside.com 2019 - 2024. All rights reserved.