websocket掩蔽的安全方面
在实现websocket服务器时,我遇到了对客户端屏蔽数据的需求。我在谷歌上搜索为什么RFC中没有给出任何理由,并找到了这个答案(以及其他具有相同推理的答案): 一开始它是有道理的,所以我只是实施了它,但因为几乎没有什么比强制“安全”更让我讨厌的了,它仍然有点折磨着我,我最终得出了两个假设,我想知道这些假设是否属实:websocket掩蔽的安全方面,websocket,Websocket,在实现websocket服务器时,我遇到了对客户端屏蔽数据的需求。我在谷歌上搜索为什么RFC中没有给出任何理由,并找到了这个答案(以及其他具有相同推理的答案): 一开始它是有道理的,所以我只是实施了它,但因为几乎没有什么比强制“安全”更让我讨厌的了,它仍然有点折磨着我,我最终得出了两个假设,我想知道这些假设是否属实: 因为它对客户端是唯一强制的,所以假设发生故障的代理或中间组件只关心客户端请求?或者说没有恶意服务器 它实际上并不是为了防止恶意参与者导致远程代码执行,而是为了防止好的客户机无意中
- 因为它对客户端是唯一强制的,所以假设发生故障的代理或中间组件只关心客户端请求?或者说没有恶意服务器
- 它实际上并不是为了防止恶意参与者导致远程代码执行,而是为了防止好的客户机无意中导致代码执行而意外成为坏的参与者。如果我是一个坏演员,我只是要发送未屏蔽的数据或设置标志,即有效载荷被屏蔽,但不屏蔽它
0000
mask/persistent mask),或者屏蔽数据看起来是恶意的,服务器将断开WebSocket,任何可能的攻击都将失败
假设屏蔽处理正确(数据被屏蔽),则响应不会被缓存或以其他方式被中介处理,因此无需浪费CPU周期屏蔽响应。这是否意味着所有攻击场景都至少涉及来自服务器的一个响应?第一个未屏蔽的请求将由中介处理,然后再发送到可能断开连接的服务器。是。所有攻击向量都要求服务器使用WebSocket数据响应恶意构建的WebSocket数据包。然而,掩蔽所解决的一组可能的连接问题比一组可能的攻击向量要大。一般来说,中介机构是为处理恶意请求而设计的,而不是为处理“恶意”/损坏的响应而设计的。这听起来确实比我读过几遍的远程代码执行更合理,谢谢:)