SignalR中的用户有什么办法从客户端知道他属于哪个组?
问题描述:
注意:这是与安全有关的问题。SignalR中的用户有什么办法从客户端知道他属于哪个组?
我把用户放在组中,名称是敏感的(数据库对象id)。
我从服务器端向组发送消息,从来没有从客户端发送消息(这就是为什么将db对象标识放在组名中对我来说不是问题)。
从我的理解中,我假定SignalR是在其内核深处管理组,并且只与每个Connections进行通信,但我不确定。
所以我的问题是:
是否团体名称以及被从客户隐藏?
或者是否有可能让用户(来自客户端)发现他属于哪个组? (如果开发人员假设组名称隐藏/不可访问,则潜在地发现敏感数据)
答
只有在您将组名传递给客户端时才会公开组名。
从服务器端,SignalR没有API来维护或公开这个。你可以维护自己的组名,因此任何曝光都会来自你自己的行为。
就安全性而言,应该在SignalR之外处理。
但是,您可以检查出使用角色帮助,如果您需要在特定的方法,如(link)限制: [Authorize(Roles = "Admin")]
公共类AdminAuthHub:集线器 {
}