微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

asp.net – 从信号器js客户端到集线器功能传递连接令牌是安全的或hacky

我读了这篇文章 http://www.asp.net/signalr/overview/security/introduction-to-security#connectiontoken

JS客户端

$.connection.hub.qs = { "token" : tokenValue };
$.connection.hub.start().done(function() { /* ... */ });

.NET客户端

var connection = new HubConnection("http://foo/",new Dictionary<string,string>
                                   {
                                       { "token",tokenValue }
                                   });

在Hub中,您可以通过Context访问社区名称

Context.QueryString["token"]

在.NET客户端上设置标头

var connection = new HubConnection("http://foo/");
connection.Headers.Add("token",tokenValue);

我注意到我们可以将一些令牌值从客户端传递给hub函数作为查询字符串…..如果我传递任何东西,因为查询字符串不安全.所以告诉我以安全的方式从客户端到集线器功能传递令牌值的最佳方法,因此没有人可以破解/更改或重用该令牌值.

一个人说SignalR使用加密和数字签名来保护连接令牌.
所以请告诉我,信号器首先加密令牌值然后从客户端传递到集线器是真的吗?

建议我如何以安全的方式将令牌值传递给集线器.谢谢

解决方法

您可以在javascript客户端中使用标头,例如:

$.signalR.ajaxDefaults.headers = { Authorization: "Bearer " + yourToken };

现在不是hacky,是一个全球设置,你可以在启动或成功的auth响应一次!请享用!

现在,只有我能找到一种方法来基于每个请求覆盖它,这样我才能得到一个用户模拟沙箱,为我的用户提供管理角色…

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐