【问题标题】:How does WebSocket protocol enforce access control for non-browser clients?WebSocket 协议如何对非浏览器客户端实施访问控制?
【发布时间】:2015-02-16 08:39:35
【问题描述】:

根据RFC 6455 websocket protocolbrowser client 将在 WebSocket 握手阶段包含 HTTP Origin 标头字段。 WebSocket 服务器将使用该Origin 来检查客户端是否具有访问权限。

但是对于功能更强大的non-browser client,握​​手阶段的Origin 标头可以煮成任何东西。 WebSocket 协议如何使用这种Origin 值来决定是否接受来自非浏览器客户端的握手?

即使使用browser client,用户不能只使用 JavaScript 创建一个假的Origin 握手标头吗?

看来Origin 标头本身就太脆弱了。

【问题讨论】:

    标签: websocket


    【解决方案1】:

    Origin 标头仅防止 smartguy.com 用户无意中使用您的 websocket 服务,因为 WebSockets 不受 SOP 影响。

    假设您创建了一个通过 WebSockets 进行通信的优秀交易应用程序,现在我在其他地方创建了一个精美的 UX 应用程序,并编写了连接到您的服务并与之交互的 javascrit。您的服务如何知道用户是从预期页面连接的? Origin 标头。

    当然,任何东西都可以在 HTTP 请求中被篡改,但这对所有 HTTP 通信都是通用的。您无法判断用户使用的是 C++ 客户端还是浏览器客户端。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-23
      • 2022-06-27
      • 2016-05-08
      • 2017-09-13
      相关资源
      最近更新 更多