use*_*388 11 c# asp.net-mvc signalr
我是SignalR的新手,但我很好奇它是多么安全.
例如,我创建了以下方法来向所有用户发送消息,如下所示:
public class NotificationHub : Hub
{
public void Send(string message)
{
Clients.All.broadcastMessage(message);
}
}
Run Code Online (Sandbox Code Playgroud)
SignalR在js文件(集线器)中生成以下方法:
proxies.notificationHub.server = {
send: function (message) {
return proxies.notificationHub.invoke.apply(proxies.notificationHub, $.merge(["Send"], $.makeArray(arguments)));
}
};
Run Code Online (Sandbox Code Playgroud)
那么,世界上的任何用户都不能将其复制并粘贴到他们的控制台中,并且在没有我说出的情况下向所有用户发送他们选择的消息?
var notifications = $.connection.notificationHub;
notifications.server.send("Your site has been hacked!");
Run Code Online (Sandbox Code Playgroud)
我只是尝试了这个并且它有效 - 所以,我怎样才能阻止我的用户从客户端发送未经授权的消息?
Dam*_*rds 11
它是一个像任何其他人一样的HTTP端点.如果要限制对其的访问,则需要对用户进行身份验证并授权其操作.您使用标准Web身份验证方法(表单身份验证,Cookie,Windows身份验证等)进行身份验证,您可以使用SignalR构造(如您指出的Authorize属性)或使用您自己的代码在代码中进行身份验证.
这些都记录在案:http://www.asp.net/signalr/overview/signalr-20/security/introduction-to-security