当前位置: 首页 > 教程 > Websocket >

Websocket安全性

精华
小牛编辑
191浏览
2023-03-14

应该出于安全原因设计协议。WebSocket是一种全新的协议,并非所有Web浏览器都能正确实现它。例如,它们中的一些仍然允许HTTP和WS的混合,尽管规范显示相反。在本章中,我们将讨论用户应该注意的一些常见安全攻击。

拒绝服务

拒绝服务(DoS)攻击会尝试使请求它的用户无法使用计算机或网络资源。假设有人向Web服务器发出无限数量的请求,没有或只有很短的时间间隔。服务器无法处理每个连接,并将停止响应或将继续响应太慢。这可以称为拒绝服务攻击。

拒绝服务对最终用户来说非常令人沮丧,他们甚至无法加载网页。DoS攻击甚至可以应用于对等通信,迫使P2P网络的客户端同时连接到受害者Web服务器。

中间人攻击

下面借助一个例子来理解这一点。

假设A人正通过IM客户端与他的朋友B聊天。有些第三人希望查看您沟通的信息。因此,他与这两个人建立了独立的联系。他还向A人和他的朋友B发送消息,作为您通信的无形中间人。这种情况称为中间人攻击。

对于未加密的连接,中间人攻击更容易,因为入侵者可以直接读取包。当连接被加密时,攻击者必须解密信息,这可能太困难了。

从技术方面来说,攻击者拦截公钥消息交换并在用他自己的密钥替换所请求的密钥时发送消息。显然,使攻击者的工作变得困难的一个可靠策略是使用SSH和WebSockets。
在传输关键数据时,更倾向于WSS安全连接而不是未加密的WS。

XSS

跨站点脚本(XSS)是一个漏洞,使攻击者能够将客户端脚本注入网页或应用程序。攻击者可以使用应用程序集线器发送HTML或Javascript代码,并让这些代码在客户端的计算机上执行。

WebSocket本机防御机制

默认情况下,WebSocket协议设计为安全的。在现实世界中,用户可能会遇到由于浏览器实现不佳而可能出现的各种问题。随着时间的推移,浏览器供应商会立即解决任何问题。

使用SSH(或TLS)上的安全WebSocket连接时,会添加额外的安全层。

在WebSocket世界中,主要关注的是安全连接的性能。尽管顶部还有一个额外的TLS层,但协议本身包含了这种用途的优化,此外,WSS通过代理更加流畅。

客户端到服务器的掩码
在WebSocket服务器和WebSocket客户端之间传输的每条消息都包含一个名为掩码密钥的特定密钥,它允许任何符合WebSocket标准的中介取消屏蔽和检查消息。如果中间设备不符合WebSocket,则不会影响该消息。实现WebSocket协议的浏览器处理掩码。

安全工具箱
最后,可以提供有用的工具来调查WebSocket客户端和服务器之间的信息流,分析交换的数据并识别可能的风险。

浏览器开发者工具
Chrome,Firefox和Opera在开发人员支持方面都是出色的浏览器。他们的内置工具可帮助我们确定客户端交互和资源的所有方面。它在安全方面起着重要作用。