这篇文章主要为大家展示了“WebSockets安全漏洞的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“WebSockets安全漏洞的示例分析”这篇文章吧。
1。WebSocket
WebSockets广泛用于现代Web应用程序中。它们通过HTTP发起,并通过双向双向通信提供长期连接。
WebSocket用于各种目的,包括执行用户操作和传输敏感信息。几乎与常规HTTP一起出现的任何网络安全漏洞也可能与WebSockets通信有关。
2。HTTP和WebSockets有什么区别?
网页浏览器和网站之间的大多数通信使用HTTP。使用HTTP,客户端发送请求,服务器返回响应。通常,响应立即发生,并且事务完成。即使网络连接保持打开状态,这也将用于请求和响应的单独事务。
一些现代网站使用WebSockets.WebSocket连接是通过HTTP发起的,通常是长期存在的。消息可以随时向任一方向发送,并且本质上不是事务性的。在客户端或服务器准备发送消息之前,连接通常将保持打开和空闲状态。
WebSocket在需要低延迟或服务器启动消息的情况下(例如财务数据的实时提要)特别有用。
3。如何建立WebSocket连接?
WebSocket连接通常是使用客户端JavaScript创建的,如下所示:
var ws =, new WebSocket (“wss://normal-website.com/chat");
注意
该<代码> wss 代码>协议建立在一个加密的TLS连接的WebSocket,而<代码> ws 代码>协议使用未加密的连接。
引用>为了建立连接,浏览器和服务器通过HTTP执行WebSocket握手。浏览器发出WebSocket握手请求,如下所示:
GET /chat HTTP/1.1 主持人:normal-website.com Sec-WebSocket-Version: 13 Sec-WebSocket-Key: wDqumtseNBJdhkihL6PW7w==连接:维生,升级 饼干:会话=KOsEJNuflw4Rd9BDNrVmvwBF9rEijeE2 升级:websocket如果服务器接受连接,则它将返回websocket握手响应,如下所示:
HTTP/1.1, 101, Switching 协议 连接:升级 升级:websocket Sec-WebSocket-Accept: 0 ffp + 2 nmnif/h + 4 bp36k9uzrygk=此时,网络连接保持打开状态,并且可以用于向任一方向发送WebSocket消息。
注意
WebSocket握手消息的几个功能值得注意:
<李>
引用>请求和响应中的连接<代码> 代码>和<代码> 代码>升级标头表示这是WebSocket握手。
李> <李>请求头的<代码> Sec-WebSocket-Version> 代码指定WebSocket协议版本的客户端希望使用。通常是这样<代码> 13> 代码。
李> <李>请求头的<代码> Sec-WebSocket-Key> 代码包含Base64编码的随机值,这应该在每个握手请求是随机产生的。
李> <李>响应头的<代码> Sec-WebSocket-Accept> 代码包含在提交的值的散列<代码> Sec-WebSocket-Key> 代码请求头,具有在协议规范中定义的特定的字符串串联。这样做是为了防止由于服务器配置错误或代理缓存错误而引起的误导响应。
李>4。WebSocket消息是什么样的?
建立WebSocket连接后,客户端或服务器可以在任一方向上异步发送消息。
可以使用客户端JavaScript从浏览器发送一条简单消息,如下所示:
ws.send (“Peter Wiener");原则上,WebSocket消息可以包含任何内容或数据格式。在现代应用程序中,JSON通常用于在WebSocket消息中发送结构化数据。
例如,使用WebSockets的聊天机器人应用程序可能会发送如下消息:
{“user":“Hal  Pline",“content":“小姐:wanted 用be a Playstation growing ,, not a device 用answer your inane questions"}5。null null null null null null null
websocket安全漏洞的示例分析