Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 将连接令牌从signalr js客户端传递到集线器函数是安全的或有漏洞的_Asp.net_Signalr - Fatal编程技术网

Asp.net 将连接令牌从signalr js客户端传递到集线器函数是安全的或有漏洞的

Asp.net 将连接令牌从signalr js客户端传递到集线器函数是安全的或有漏洞的,asp.net,signalr,Asp.net,Signalr,我读了这篇文章 JS客户端 .NET客户端 在.NET客户端上设置头 我注意到,我们可以将一些令牌值作为查询字符串从客户端传递给hub函数……如果我传递任何内容,则查询字符串不安全。所以,请告诉我以安全的方式将令牌值从客户端传递到中心函数的最佳方法,这样就不会有人攻击/更改或重用该令牌值 一个人说,信号器使用加密和数字签名来保护连接令牌。。 所以请告诉我信号器首先加密令牌值,然后从客户端传递到集线器是真的吗 建议我如何以安全的方式将令牌值传递给集线器。谢谢当客户端启动连接时,服务器创建并加密连

我读了这篇文章

JS客户端 .NET客户端
在.NET客户端上设置头 我注意到,我们可以将一些令牌值作为查询字符串从客户端传递给hub函数……如果我传递任何内容,则查询字符串不安全。所以,请告诉我以安全的方式将令牌值从客户端传递到中心函数的最佳方法,这样就不会有人攻击/更改或重用该令牌值

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


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

当客户端启动连接时,服务器创建并加密连接令牌并将其发送给客户端。从这一点开始,客户机必须在每次向服务器发送请求时发送连接令牌。服务器在收到请求时验证连接令牌。如果您询问如何防止多个客户端使用同一令牌,那么我认为您需要查看身份验证。

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

$.signalR.ajaxDefaults.headers = { Authorization: "Bearer " + yourToken };
现在不黑客,是一个全球性的设置,你可以做一次启动或成功的身份验证响应!享受吧


现在,只要我能找到一种方法,在每个请求的基础上覆盖它,这样我就可以让一个用户模拟沙盒为我的管理角色的用户工作…

我已经看到
$.connection.hub.qs={“token”:tokenValue}这种方式人们将令牌从客户端传递到中心。如何加密连接令牌?请你解释一下。你解释得很简短,但我不太清楚。我确实有完全相同的问题。您找到解决方案了吗?很抱歉,我没有找到解决方案,而是将我的令牌值作为加密传递。我找到了解决方案!谢谢你的帮助。我去那个链接,不明白他们试图显示什么,使令牌安全。如果你明白了,请简单解释一下。谢谢你,为什么这个标题没有出现在hub方法中,我无法从这个.Context.Request.Headers中获取它。。。在MyHubMethod()内部,如果您通过WebSocket进行连接,那么这就是原因。WebSocket无法处理自定义HTTP头。
var connection = new HubConnection("http://foo/",
                                   new Dictionary<string, string>
                                   {
                                       { "token", tokenValue }
                                   });
Context.QueryString["token"]
var connection = new HubConnection("http://foo/");
connection.Headers.Add("token", tokenValue);
$.signalR.ajaxDefaults.headers = { Authorization: "Bearer " + yourToken };