Signalr 信令组安全注意事项

Signalr 信令组安全注意事项,signalr,asp.net-core-signalr,Signalr,Asp.net Core Signalr,希望你能帮助解决这个问题。我们有一个基于浏览器的支持应用程序,使用SignalR进行客户聊天。该解决方案包括两个web应用程序:admin.[domain].com和support.[domain].com。两者都是C#ASP.NET核心3.1 MVC应用程序 管理员应用程序被支持工程师用来为聊天服务。SignalR hub托管在管理应用程序中。管理员应用程序使用ASP.NET核心标识进行身份验证和授权 但是,支持应用程序没有身份机制-我们需要一个“低摩擦”解决方案,用户只需连接到support

希望你能帮助解决这个问题。我们有一个基于浏览器的支持应用程序,使用SignalR进行客户聊天。该解决方案包括两个web应用程序:
admin.[domain].com
support.[domain].com
。两者都是C#ASP.NET核心3.1 MVC应用程序

管理员应用程序被支持工程师用来为聊天服务。SignalR hub托管在管理应用程序中。管理员应用程序使用ASP.NET核心标识进行身份验证和授权

但是,支持应用程序没有身份机制-我们需要一个“低摩擦”解决方案,用户只需连接到support.domain.com/{GUID},无需密码。GUID是由支持工程师预先生成的信号器组名。点击此路径后,支持应用程序将调用
AddToGroup(GUID)

信号器文档指出,组不是有效的安全机制。但是,如果组名是guid,并且我们从不发送给所有客户机,那么这是一种合理安全的方法吗

消息仅在组内发送或接收。GUID使组名变得非常安全,我原以为


如果组名是未知的GUID,那么聊天是否容易被窃听?是否有更好/更安全的替代方法,无需客户端输入密码?

正如您所说的,该方法。但在您的情况下,您想要做的是好的,因为只要用户连接到中心,并且组管理由管理员进行,在聊天会话之后,管理员可以删除组,以便用户以后不能加入

你需要明确这是一个公共会话,就像你在白板等应用程序中看到的那样,如果用户有邀请链接,他们可以加入

我还建议实施一些
ttl
机制,使组在一段时间后过期,以避免用户加入会话

最后,做一些防御性的编码,比如,一次只允许每组有一个管理员和一个用户,等等