首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏架构专题

    WebSocket协议 8

    对http一问一答中二式流程的不满,催生了支持双向通信的WebSocket诞生。WebSocket是个不太干净协议。 ---- 本文包括以下内容: 一、WebSocket协议只能浏览器发起么? 八、WebSocket能干些啥? ---- 一、WebSocket协议只能浏览器发起么? 不是。目前此协议的受众的也不仅仅是web开发者。 二、WebSocket和HTTP什么关系? WebSocket和http一样,都是处于OSI模型中的最高层:应用层。 ? 请求的地址,一般是:ws://\*\*\*,或者是使用了SSL/TLS加密的安全协议wss:,用来标识是WebSocket请求。 1、 首先,通过Http头里面的Upgrade域,请求进行协议转换。 加密 && 认证 虽然使用Fiddler、Charles等能够抓到很多WebSocket包。但如果同时开启SSL,传输加密后的二进制数据,会大幅增加破解的成本,会安全的多。

    1.1K20发布于 2019-09-24
  • 来自专栏FreeBuf

    WebSocket安全性分析

    聊天 弹幕 协同编辑 股票报价实施更新 位置更新 直播实况段落的首行要 WebSocket安全性分析 websocket仅仅是web程序中的一种通信协议,并不会解决web应用中存在的安全问题。 因此在HTTP协议中出现的安全问题在websocket中都可能出现。 目前对于HTTP协议的漏洞已经很少了,可以去看看websocket协议的,说不定会有意想不到的发现。 因此,认证实现方面的安全问题与基于HTTP的Web认证并无区别。 ,这就说明通过websocket协议与传统的http协议面临相同的安全风险,如垂直越权和水平越权。 websocket安全问题如何预防 正确验证输入输出的数据,跟http协议一样 使用CSRF Token、请求头令牌等方案保护WebSocket握手流程,防止WebSocket握手流程被CSRF攻击所利用

    94010编辑于 2023-08-08
  • 来自专栏网络安全攻防

    WebSocket攻防对抗安全指南

    9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-------+-+-------------+------------------ 连接直接断开 WireShark抓包如下: 客户端发送断开链接请求(这里的Opcode 8标识此帧为关闭帧) 服务器端收到关闭帧并断开链接 安全风险 WebSocket作为一种通信协议其主要的功能其实还是实现通信并完成客户端与服务器端的数据的交互 ,而且在此过程中自然而然少不了会牵扯到相关的业务功能,也就自然会存在可以被攻击者实施攻击的脆弱点,下面我们对几个WebSocket安全风险进行简单介绍 操纵消息 基本介绍 在对网站进行安全测试时我们可以使用 安全攻击手法的同时看到windcctv师傅介绍的一个关于WebSocket通过篡改数据包达到SQL注入漏洞利用的案例,由于网站已然无法访问,故而这边简单梳理一下其流程,首先是在信息收集期间发现目标站点实例 漏洞只能通过操纵WebSocket握手来发现和利用,这些漏洞往往涉及设计缺陷,例如:应用程序使用的自定义HTTP头引入的攻击面在HTTP标头中放错位置的信任以执行安全性决策,例如:X-Forwarded-For

    1.4K10编辑于 2024-12-20
  • 来自专栏API安全

    WebSocket API安全风险解读

    WebSocket API安全风险WebSocket API的安全风险主要分为两大类:常规攻击风险和特有攻击风险。以下是这两大类风险的详细解读。 ,因此WebSocket API同样面临着OWASP API 2023十大安全风险中的API2:身份认证失效风险。 WebSocket API也会存在和传统Web应用相同的安全风险,如:垂直越权、水平越权、未授权访问等等安全风险。 所以WebSocket API同样面临OWASP API 2023十大安全风险中API1:对象级别授权失效、API3:对象属性级别授权失效、API5:功能级别授权失效的安全风险。 4.3 安全风险总结实际上,几乎所有的Web漏洞都有可能出现在WebSocket中。

    1.3K10编辑于 2023-07-03
  • 来自专栏Netkiller

    Java8 + Tomcat8 实现Websocket 例子

    背景 公司网站上线需要一个实时报价功能,于是想到了 Websocket, 我在多年前就尝试过Websocket 那时 HTML5标准尚未产生,各家实现均有不同,Websocket 版本也非常多,实现兼容也比较复杂 ,于是放弃Websocket。 Client 环境:Java8 + Tomcat8 7.1. Server package websocket; /** * Websocket Server * * @author netkiller<netkiller@msn.com> */ import ; import javax.websocket.OnMessage; import javax.websocket.OnOpen; import javax.websocket.Session; import

    1.3K70发布于 2018-03-05
  • 来自专栏编程微刊

    webSocket 有哪些安全问题?

    WebSocket在实现实时通信和双向数据传输方面非常有用,但也存在一些安全问题需要注意。 以下是一些与WebSocket相关的安全问题: 1:跨站脚本攻击(XSS): WebSocket在消息传递过程中可能传输恶意脚本,如果服务器没有适当地处理和过滤用户输入,攻击者可能通过WebSocket 加密通信: 使用安全的传输层协议(如TLS/SSL)对WebSocket通信进行加密,确保数据在传输过程中的机密性和完整性。 安全培训和意识: 对开发人员和用户进行安全培训和意识提升,使其了解WebSocket安全风险和最佳实践。 综上所述,通过适当的安全措施和措施可以减轻WebSocket相关的安全风险,确保应用程序和用户数据的安全性。

    1.9K30编辑于 2023-10-23
  • 来自专栏开源技术小栈

    WebSocket 实时通信 JWT 安全认证实现

    概述 WebSocket作为一种通信协议引入到Web应用中,并不会解决Web应用中存在的安全问题,因此WebSocket应用的安全实现是由开发者或服务端负责。 这就要求开发者了解WebSocket应用潜在的安全风险,以及如何做到安全开发规避这些安全问题。 认证 使用JWT进行身份认证是一种常见的做法,因为它可以方便地在客户端和服务器之间传递用户的身份信息。 在WebSocket通信中,可以通过URL地址传递令牌参数来实现JWT身份认证。 通信中加入Token主要是为了实现身份验证和授权,确保只有经过验证的用户可以建立WebSocket连接。 调试案例 var ws = new WebSocket('ws://127.0.0.1:8782/?

    59810编辑于 2025-06-16
  • 探秘WebSocket安全之门:如何在请求头中安全携带Authorization?

    安全性成为这些应用绕不过去的门槛,如何在WebSocket请求中安全携带Authorization信息,是每位开发者都会遇到的问题。 它能有效筛除未授权用户,保障数据交换安全不被未授权访问。WebSocket 调试工具简析在WebSocket开发和调试过程中,选择一个合适的接口测试工具显得尤为关键。 实际应用中安全细节和异常处理同样重要,务必甄别准入逻辑。工具调试流程说明(以Apifox为例)虽然市面上工具选择多样,这里仅说明一条常规流程:在Apifox中新建HTTP项目及WebSocket接口。 总结与思考WebSocket身份验证设计虽有多种实现途径,但需要结合具体业务、客户端环境与安全要求进行选择和调整。浏览器API本身有一定限制,更多应用场景推荐在连接建立后立即主动发送认证信息。 未来,随着协议安全性进一步强化,WebSocket身份认证手段可能将趋于标准化。开发人员应密切关注协议演进,持续优化自身系统的安全防护策略,以应对日益增长的实时通信安全挑战。

    1.3K11编辑于 2025-09-04
  • 来自专栏hml_知识记录

    小程序websocket推送消息Uint8ArrayArrayBuffer

    // 小程序中sendSocketMessage是支持ArrayBuffer的,我这个错误原因在于new Uint8Array不是ArrayBuffer,而是他的一个属性值才是arrayBuffer var init8arr = new Uint8Array([1,0,2,0,1]); wx.sendSocketMessage({ data: init8arr.buffer, success console.log(e) } }); 另外还一个问题就是真机小程序中不支持 new TextDecoder()对象,函数,解决办法: function decodeUTF8( String.fromCharCode(arr[i]); } return decodeURIComponent(escape(str)); } console.log(decodeUTF8(

    90040编辑于 2022-03-21
  • 来自专栏liulun

    【翻译】Windows8支持WebSocket(相关技术)

    原文地址: http://www.infoq.com/news/2012/03/websocket-windows 鉴于Windows 8客户预览版已经很好的支持WebSocket协议和WebSocket API asp.net 开发人员可以使用System.Web.Websockets类库来实现双向通信的功能 在windows 8客户预览版和Server beta版本中 IE10、所有的微软WebSocket 客户端和服务端功能都支持 最新版本的 IETF WebSocket 协议 另外,IE10还实现了W3C的候选版 WebSocketAPI 微软IE团队的官方博客详细解释了这些内容 与此同时, ASP.NET 开发人员可以使用.Net Framework4.5引入的 System.Web.WebSocket名称空间来使用此项技术 这个名称空间不同于System.Net.Websockets名称空间 前者把这些技术集成到 asp.net框架中 后者只是提供了.Net框架下标准WebSocket的实现 WebSocket技术提供了基于TCP Socket的双向通信信道技术 这与Comet Channels技术很接近 Comet

    79330编辑于 2022-05-09
  • 来自专栏全栈程序员必看

    tomcat7和tomcat8websocket区别

    tomcat8真正支持jsr-356(包含对websocket的支持), tomcat7部分版本的websocket实现不兼容jsr-356。 websocket实现tomcat7.x与tomcat8.x有很大差异。 在tomcat7中使用websocket需要定义一个servlet,然后继承WebSocketServlet,在tomcat8中使用websocke。 xml version="1.0" encoding="UTF-8"? 1、新建一个环境为tomcat8的web工程,需要的包有websocket-api.jar。 2、后台java类。

    71930编辑于 2022-09-09
  • WebSocket安全漏洞:当实时通信成为攻击跳板

    Sec-WebSocket-Accept:服务器根据客户端的Sec-WebSocket-Key计算得出的一个值,用于确认。 代理行为(ProxyBehavior):当WebSocket升级请求通过代理服务器时,许多代理(尤其是未配置为特殊处理WebSocket的)在连接升级后,会将后续的客户端和服务器之间的WebSocket :7,8,13...代理行为:忽略426,开始隧道模式。 这个请求本身也包含WebSocket升级头部(Upgrade:websocket,Connection:Upgrade,Sec-WebSocket-Version:13,Sec-WebSocket-Key 后端应用也应有自身的安全机制。SSRF防护:严格限制服务器发出的网络请求,防止攻击者利用SSRF漏洞控制服务器响应或访问内部资源。

    35410编辑于 2025-12-05
  • 来自专栏Jenkins

    WebSocket

    此改进为 Jenkins 带来了实验性的 WebSocket 支持,可在连接入站代理程序或运行 CLI 时使用。WebSocket 协议允许通过 HTTP(S)端口进行双向交互式通信. 使用 WebSocket,现在可以在存在反向代理的情况下更简单地连接入站代理:如果 HTTP(S)端口已在提供流量,则大多数代理将允许 WebSocket 连接而无需其他配置。 可以在代理配置中启用 WebSocket 模式,并且即将推出 Kubernetes 插件中对基于 Pod 的代理的支持。 Jenkins 2.217 提供了一个新的 webSocket CLI 模式,该模式避免了这些问题。再次说明,您将需要下载新版本的 jenkins-cli.jar 才能使用此模式。 已经针对 Kubernetes 实现示例(包括 OpenShift)对 WebSocket 代码进行了测试,但是很可能仍然存在一些 bugs 和局限性,并且尚未测试重构建负载下代理的可伸缩性。

    2.5K20发布于 2020-02-25
  • 来自专栏开源部署

    WebSocket

    WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。 HTML5 定义的 WebSocket 协议,能更好的节省服务器资源和带宽,并且能够更实时地进行通讯 图解 三、前端WebSocket使用 创建 WebSocket 对象 var Socket = new WebSocket(url, [protocol] ); WebSocket 事件 事件 事件处理程序 描述 open Socket.onopen 连接建立时触发 message Socket.onmessage 实例说明 WebSocket 协议本质上是一个基于 TCP 的协议 为了建立一个 WebSocket 连接,客户端浏览器首先要向服务器发起一个 HTTP 请求,这个请求和通常的 HTTP 请求不同,包含了一些附加头信息 ,其中附加头信息"Upgrade: WebSocket"表明这是一个申请协议升级的 HTTP 请求,服务器端解析这些附加的头信息然后产生应答信息返回给客户端,客户端和服务器端的 WebSocket 连接就建立起来了

    1.7K11编辑于 2022-09-14
  • 来自专栏了不得的专栏

    websocket

    HTML5开始提供websocket解决方式,基于TCP实现客户端与服务端全双工通信。websocket只使用了一个连接,避免了连接的多次建立;且只有连接初次建立比较复杂,后期通信成本较低。 tomcat7以后开始提供了websocket,基于servlet容器可以使用javax.websocket,后端代码: @Component @ServerEndpoint("/websocket") catch (IOException e) { throw new RuntimeException(e); } } } 此外,spring也提供了对websocket 的支持,可以使用spring-websocket包实现,可以扩展 TextWebSocketHandler,spring监听到 websocket事件后会调用对应的方法。 前端以vue举例: initWebSocket() { this.websoket = new WebSocket("wss://{your.domain}/websocket?

    1.8K40发布于 2021-06-15
  • 来自专栏WflynnWeb

    websocket

    websocket在什么背景下诞生? 而websocket客户端、服务端都能主动的向对方发送消息,属于全双工通信。 WebSocket 对象提供了一组 API,用于创建和管理 WebSocket 连接,以及通过连接发送和接收数据。 浏览器提供的WebSocket API很简洁,调用示例如下: var ws = new WebSocket('wss://example.com/socket'); // 创建安全WebSocket 连接 Sec-WebSocket-Version标识了客户端支持的WebSocket协议的版本列表。 if (this.options.verifyClient) { const info = { origin: req.headers[`${version === 8 ?

    3.2K20编辑于 2022-10-28
  • 来自专栏coder

    WebSocket

    WebSocket 对象提供了用于创建和管理 WebSocket 连接,以及可以通过该连接发送和接收数据的 API。 使用WebSocket()构造函数来构造一个 WebSocket。 常量 Constant Value WebSocket.CONNECTING 0 WebSocket.OPEN 1 WebSocket.CLOSING 2 WebSocket.CLOSED 3 属性 WebSocket.protocol 只读 服务器选择的下属协议。 WebSocket.readyState 只读 当前的链接状态。 WebSocket.url 只读WebSocket 的绝对路径。 这个 UTF-8 编码的字符串不能超过 123 个字节。 字符串将以 UTF-8 格式添加到缓冲区,并且 bufferedAmount 将加上该字符串以 UTF-8 格式编码时的字节数的值。

    1.1K20编辑于 2023-10-16
  • 来自专栏前端开发0202

    webSocket

    WebSocket介绍、使用 webSocket是一种新的传输协议,HTML5新增的协议,相较于http协议,webSocket更像是一台对讲机,可以实现实时通信,双向传输,即服务器也可以主动发送请求到前端 ,打破了以往只能前端发送请求,然后服务器被动响应的传统方式 node.js socket.io socket.io是一个node.js平台上的webSocket封装框架,使用难度比较容易 在使用前必须先安装 socket.io-client\dist\soket.io.js <script src="http://localhost:8080/socket.io/socket.io.js" charset="utf-<em>8</em>"

    2.4K20发布于 2020-05-09
  • 来自专栏ahzoo.cn的博客分享

    WebSocket

    WebSocketWebSocket和HTTP一样是应用层的协议。但是WebSocket是一种双向通信协议,是一种有状态协议。 对象 Websocket协议定义了两种URL方案 ws: 非加密 wss :加密(使用HTTPS采用的安全机制保证HTTP连接的安全)。 事件 使用 描述 open websocket对象.onopen 连接时触发 message websocket对象.onmessage 客户端接收服务端数据时触发 error websocket DOCTYPE html> <html lang="en"> <head> <meta charset="utf-<em>8</em>"> <meta name="viewport" content="width final Logger logger = LoggerFactory.getLogger(WsEndpoint.class); // 储存每个客户端用户的WsEndpoint对象(为了线程<em>安全</em>这里使用的是

    1.8K20编辑于 2022-08-01
  • 来自专栏Super 前端

    WebSocket

    WebSocket协议完全可以取代Ajax方法,用来向服务器端发送文本和二进制数据,而且还没有“同域限制”。 WebSocket不使用HTTP协议,而是使用自己的协议。 请求: GET / HTTP/1.1 Connection: Upgrade //表示浏览器通知服务器,如果可以,就升级到webSocket协议 Upgrade: websocket //表示将通信协议从 Protocols Connection: Upgrade Upgrade: websocket Sec-WebSocket-Accept: fFBooB7FAkLlXgRSz0BT3v4hq5s= Sec-WebSocket-Origin: null Sec-WebSocket-Location: ws://example.com/ //表示进行通信的WebSocket网址 注意:WebSocket 客户端建立WebSocket流程: (0)检测浏览器是否支持WebSocket (1)握手协议成功以后,readyState就从0变为1,并触发open事件 (2)关闭WebSocket连接,会触发close

    2.1K41发布于 2019-08-15
领券