6

我正在研究 websocket RFC 6455,其中 web-socket 的安全模型被声明为基于源的安全模型。还提到了 Web 浏览器使用此安全模型。那么这个基于源的安全模型是关于什么的呢?

4

3 回答 3

3

CORS 不适用于 WebSocket。一个页面 JS 可以连接到任何 WebSocket 服务器。只是浏览器WebSocket 客户端将发送一个origin标头,您可能会或可能不会在服务器中使用该标头来拒绝客户端。但是,非浏览器客户端可以伪造它,因此它的用途有限。

于 2013-10-05T18:16:40.930 回答
2

本质上,数据/脚本根据其加载位置被归类为受信任或不受信任,如果您了解同源策略或跨源资源共享 (CORS),那么您就知道浏览器对从不同域加载的 Javascript 施加了一些限制。

于 2013-10-03T00:05:20.277 回答
1

怎么了:

  • 客户端连接到服务器,建立 TCP 连接,HTTP 分层。
  • 在 HTTPS 的情况下,还有关于要使用的加密协议、密钥交换和可能的证书交换的协议。如果发生证书交换:
    • 客户端可以通过使用服务器的公钥验证服务器的证书来确定服务器是它所伪装的(通常这样做是为了确保没有中间人攻击或 DNS 欺骗正在发生ETC。)
    • 服务器可以通过使用客户端的公钥验证客户端的证书来确定客户端是它所假装的(仅在用例要求客户端身份很重要的情况下这样做)
  • 连接已建立!从这里开始,任何通过 TCP 连接的东西都被认为是健康的。“越过连接”意味着“同源”:它来自同一个客户端(或者它来自同一个服务器)。

很可能是客户端(甚至服务器)上存在恶意黑客攻击,它破坏了 TCP 或 HTTP 级别的现有连接,并注入了自己的数据包、数据、请求或 XML 块。太糟糕了!在所描述的方法中无法排除这种情况。需要对协议进行额外检查,例如,对由 ${company代表} 安装的相互信任的硬件模块或类似复杂的东西签署的每个单独请求有一个单独的签名。

于 2018-11-03T06:09:11.343 回答