相关疑难解决方法(0)

HTTPS URL是否已加密?

使用TLS/SSL(HTTPS)加密时是否加密了所有URL?我想知道,因为我希望在使用TLS/SSL(HTTPS)时隐藏所有URL数据.

如果TLS/SSL为您提供全面的URL加密,那么我不必担心从URL隐藏机密信息.

ssl https httprequest

952
推荐指数
13
解决办法
26万
查看次数

HTTPS查询字符串是否安全?

我正在创建一个使用HTTPS的安全的基于Web的API; 但是,如果我允许用​​户使用查询字符串配置它(包括发送密码)这也是安全的,还是应该通过POST强制它?

ssl https query-string

331
推荐指数
8
解决办法
9万
查看次数

为什么WebSockets没有同源策略?为什么我可以连接到ws:// localhost?

我想使用WebSockets为我的应用程序进行进程间通信(Daemon < - > WebGUI和Daemon < - > FatClient等).在测试期间,我尝试通过websocket.org(http://www.websocket.org/echo.html)上的JavaScript WebSocket客户端连接到我本地运行的Web套接字服务器(ws:// localhost:1234 ).

我现在的问题是:
为什么这可能?浏览器中是否没有实现跨源策略(此处:Linux上的FF29)?

我问,因为如果websocket.org是邪恶的,它可能会尝试与我的本地WS服务器通信,并将从localhost接收的每条消息重定向到任何其他服务器:

Local WebSocket Server            Browser            Evil Web Server
at ws://localhost:1234                               at http://evil.tld
        |                            |                       |
        |                            |------[GET /]--------->|
        |                            |<-----[HTML+EvilJS]----|
        |<------[connect ws://..]----|                       |
        |<----[some communication]-->|                       |
        |                            |----[evil forward]---->|
        |                            |                       |

我没有测试整个用例,但是从websocket.org提供的JS连接到ws:// localhost肯定有效.

javascript security websocket

74
推荐指数
3
解决办法
4万
查看次数

如何在django频道上使用令牌认证对websocket进行身份验证?

我们想为我们的websockets使用django-channels,但我们也需要进行身份验证.我们有一个运行django-rest-framework的rest api,我们使用令牌来验证用户,但是django-channels似乎没有内置相同的功能.

auth-token django-rest-framework django-channels

27
推荐指数
5
解决办法
1万
查看次数

Websocket服务器:如何授权客户端?

我目前正在使用html5 canvas和websockets构建一个带有游戏的网页.我有一个在服务器上运行的perl编写的websocket服务器:3000.在服务器上我还安装了apache,并创建了一个用户可以访问的网站:http:// server /.此页面上的javascript为ws:// server:3000创建一个websocket

连接工作,我可以从我的浏览器发送消息并获得响应,现在在div中显示所有内容.我发送的消息现在只是"消息:...",因此服务器知道它是一条消息,并向当前连接到"游戏"的所有用户输出"...".

现在的问题是,任何人都可以编写自己的客户端,连接到ws:// server:3000并发送/接收相应的消息.这样他们就可以使用我的后端,但不是我的客户端(我希望他们只能从http:// server /中播放).

如何确保仅使用我的客户端?主要担心的是作弊.您可以编写一个连接到端口的机器人,通过发送消息并解释它收到的消息来为您播放...如何克服这个问题?

html5 websocket

21
推荐指数
1
解决办法
2万
查看次数

是否可以对websocket升级请求使用承载认证?

打开websocket连接的升级请求是标准HTTP请求.在服务器端,我可以像其他任何一样对请求进行身份验证.就我而言,我想使用Bearer身份验证.不幸的是,在浏览器中打开websocket连接时无法指定标头,这会让我相信使用承载身份验证来验证Web套接字升级请求是不可能的.所以 - 我错过了什么,还是真的不可能?如果不可能,这是设计,还是在websocket API的浏览器实现中明显疏忽?

authentication authorization websocket

20
推荐指数
2
解决办法
2万
查看次数

SignalR(.NET Core)中的JWT身份验证,不在Query String中传递令牌

我在ASP .NET Core Web API应用程序中使用JWT身份验证令牌.令牌由API本身生成,而不是由第三方生成.我成功地将SignalR添加到堆栈中,但现在我需要对尝试执行服务器(Hub)方法的用户进行身份验证.有人建议在JavaScript中的"qs"属性中传递令牌.这对我来说不起作用,因为我们的代币非常大(它们包含很多索赔).我尝试编写一个自定义中间件,用于从有效负载中读取令牌并自动验证用户.问题是,使用WebSockets时,不会执行中间件.任何想法都会有所帮助

authentication authorization jwt signalr asp.net-core

17
推荐指数
1
解决办法
4139
查看次数

续订WebSocket连接的令牌的最佳做法是什么?

这可能是基于意见的,但我仍然怀疑是否有最佳实践,因为我对websocket实践几乎一无所知

我有一个从我自己获得JWT令牌的SPA OP.然后它使用该JWT连接到我使用REST和WebSockets的其他服务.

就REST来说,它非常简单:

  • REST API验证JWT(已发送Authorization: Bearer ...)并提供对受保护资源的访问,或者使用a响应401,让SPA知道它需要请求新令牌.

现在有websockets:

在加载SPA期间,一旦我获得了令牌,我就打开了一个WS到我的web服务.我发送的第一条消息是login_message我的JWT,然后我保留在服务器的websocket实例上以了解谁在发送消息.我收到的每个后续消息,我都会验证JWT是否已过期.

据我所知,一旦它到期,我面临两个选择:

  1. 删除websocket时会token_expired出现某种错误,并在令牌刷新后强制浏览器建立新的websocket连接.

  2. 保持websocket打开,返回错误消息并发送新的登录消息(刷新​​令牌后)

  3. 不要使用登录消息,只需在每个请求中发送JWT.

问题:您会推荐哪种方法?为什么?在安全性和性能方面.我没有列出其他常见做法吗?

websocket jwt openid-connect

15
推荐指数
1
解决办法
922
查看次数

在初始连接的授权标头中将JWT传递给Node.js WebSocket

我正在设置Node.js服务器以与WebSockets通信到我的Web应用程序.我计划使用JSON Web令牌来限制只有已经使用我们的webapp进行身份验证的用户的访问权限.在研究时,我很难找到Node.js的WebSocket包,它支持Authorization标头的客户端设置并在初始连接调用时使用它?

我经常看到通过查询参数传递令牌的建议,这可能不如通过Authorization标头传递令牌更安全.我错过了什么吗?是否有任何良好的,维护良好的WebSocket库允许设置Authorization标题客户端,以便我可以防止与服务器的不必要的连接?

authorization websocket node.js jwt

12
推荐指数
1
解决办法
7943
查看次数

是否可以向 RxJs Websocket 添加请求标头?

我正在寻找从我的角度应用程序到服务器创建基本的 Websocket 连接。根据 RxJs 文档,“websocket”方法是浏览器提供的 WebSocket 对象的包装器:

import { Injectable } from '@angular/core';
import { webSocket } from 'rxjs/webSocket';

@Injectable({
  providedIn: 'root'
})

export class WebSocketService {

  connect(url: string) {
    return webSocket(url);
  }
}
Run Code Online (Sandbox Code Playgroud)

虽然这些示例非常简单,但令我惊讶的是缺乏有关浏览器需要将数据作为请求标头(即身份验证令牌)的一部分发送给服务器以满足请求的场景的文档。JavaScript WebSockets 支持吗?

我已经看到了一种解决方法,其中 websocket url 将添加令牌作为查询参数(见下图),但这是一个应该避免的安全漏洞。任何建议或参考都会有所帮助!

在此输入图像描述

javascript websocket rxjs angular

9
推荐指数
1
解决办法
3749
查看次数