【问题标题】:Is it secure to send the access_token as part of the websocket url query params?将 access_token 作为 websocket url 查询参数的一部分发送是否安全?
【发布时间】:2018-09-22 10:27:54
【问题描述】:

在使用 webhook 在Ably Realtime 中获取有关频道生命周期事件的通知时,将 access_token 作为 websocket url 查询参数的一部分发送是否安全?

(免责声明:我是 Ably 的开发者倡导者,并在 Stack Overflow 上发布并自行回复 commonly asked support question,以便我们的用户可以更轻松地找到它)

【问题讨论】:

标签: security websocket real-time ably-realtime


【解决方案1】:

从安全角度来看,访问令牌的存储位置并不重要。在普通的 HTTP 请求中,它会存储在标头中,或者在websocket 连接建立后的消息中。但是,许多客户端的websockets 不支持客户端标头,并且可以检查流量的攻击者同样可以访问这两个标头。如今,连接默认通过 TLS 进行,因此您无法从外部访问查询参数,也无法访问消息的内容。

传统上,在查询参数中包含凭据被认为是不好的做法,因为 URL 可以存储在代理日志、浏览器历史记录等位置。但是,这些问题都不适用于 websockets(浏览器不会保留页面建立的连接的历史记录),并且当存在 TLS 隧道时,代理无法访问 URL。当非 TLS 交互是默认设置时,就会出现这种担忧。相比之下,大多数 OAuth 流程会导致使用 access_token 查询参数进行端点访问。

【讨论】:

  • Re:日志记录,支持 Web 套接字的 HTTP 服务器呢? HTTP 服务器是否有可能注销完整的请求 URL,包括查询参数?
猜你喜欢
  • 2015-04-13
  • 1970-01-01
  • 2015-12-19
  • 2016-11-27
  • 2021-03-14
  • 2021-07-27
  • 1970-01-01
  • 2021-12-19
  • 2014-10-30
相关资源
最近更新 更多