阅读 Web Socket RFC,在 5.1 中它说:
客户端必须屏蔽它发送到服务器的所有帧(有关详细信息,请参阅第 5.3 节)。(请注意,无论 WebSocket 协议是否在 TLS 上运行,都会进行屏蔽。)服务器必须在接收到未屏蔽的帧时关闭连接
但是这种面具的目的是什么?如果使用 Wireshark 我正在阅读客户端发送的消息没有任何问题?
阅读 Web Socket RFC,在 5.1 中它说:
客户端必须屏蔽它发送到服务器的所有帧(有关详细信息,请参阅第 5.3 节)。(请注意,无论 WebSocket 协议是否在 TLS 上运行,都会进行屏蔽。)服务器必须在接收到未屏蔽的帧时关闭连接
但是这种面具的目的是什么?如果使用 Wireshark 我正在阅读客户端发送的消息没有任何问题?
屏蔽的原因是让 websocket 流量看起来不像正常的 HTTP 流量,变得完全不可预测。否则,任何尚未升级以理解 Websocket 协议的网络基础设施设备都可能将其误认为是正常的 http 流量,从而导致各种问题。
这对于缓存代理服务器来说尤其是一个问题,并导致可能的攻击场景。专门制作的 websocket 流量可能会通过欺骗代理服务器将 websocket 通信的一部分误认为是请求和响应为不相关的 URL,将其像合法响应一样缓存并将其发送给请求该 URL 的其他用户,从而导致缓存中毒。