C# 信令安全消息传递

C# 信令安全消息传递,c#,asp.net-mvc,security,model-view-controller,signalr,C#,Asp.net Mvc,Security,Model View Controller,Signalr,所以,我有一个安全相关的问题 // Code that was originally sent to client from the server var hub = $.connection.hubname; hub.name = "UserIdFromDataBase"; 如果某个恶意用户使用相同的代码编写一个简单的html页面,他是否会收到原始用户发送的所有消息 (实际上我想组织注册用户之间的聊天,这就是为什么服务器端应该提供name/clientid的原因) 谢谢 UP

所以,我有一个安全相关的问题

// Code that was originally sent to client from the server
var hub = $.connection.hubname;        
hub.name = "UserIdFromDataBase";
如果某个恶意用户使用相同的代码编写一个简单的html页面,他是否会收到原始用户发送的所有消息

(实际上我想组织注册用户之间的聊天,这就是为什么服务器端应该提供name/clientid的原因)

谢谢

UPD:

我在项目门户网站上创建了一个相关问题:


简短的回答是否定的,但实际上这取决于服务器端代码在做什么

信号器将为到集线器的每个连接提供唯一的connectionID。只要您使用connectionID来路由消息,而不是基于客户端提供的值构建自己的路由机制,您就可以了

在您提供的示例中,当用户连接时,他将获得唯一的connectionID。即使第二个用户能够改变客户端代码的值并模仿第一个用户,其由SignalR提供的connectionID也将不同

有关如何从调用特定客户端上的方法的示例

public class MyHub : Hub
{
     public void Send(string data)
     {
         // Invoke a method on the calling client
         Caller.addMessage(data);

         // Similar to above, the more verbose way
         Clients[Context.ConnectionId].addMessage(data);
     }
}