我正在阅读websocket规范,它说:
最后,服务器必须向客户端证明它收到了客户端的WebSocket握手,因此服务器不接受不是WebSocket连接的连接.这可以防止攻击者通过使用| XMLHttpRequest |发送精心设计的数据包来欺骗WebSocket服务器.或者|形式| 提交.
我已多次阅读,但我仍然不清楚为什么这是必要的.
挑战 - 响应机制迫使服务器确保客户端是合法的WebSocket客户端,而不是脚本做有趣的事情.
挑战在"Sec-WebSocket-Key"HTTP标头中发送.由于浏览器确保脚本无法设置"Sec-*"标头,因此可防止脚本通过XMLHttpRequest打开WebSocket连接.
如果服务器不必回答挑战,则某些惰性服务器可能会完全忽略"Sec-WebSocket-*"标头,从而使客户端不受流氓脚本的影响.
它也可能是允许客户端验证它正在与WebSocket服务器通信的一种方式,但我认为这不是主要原因,因为服务器无论如何都必须发送101个交换协议状态代码,以及"升级" :websocket"标题.
| 归档时间: |
|
| 查看次数: |
1834 次 |
| 最近记录: |