首页/安全/渗透测试与安全评估速查/WebSocket 安全配置检查
常见漏洞验证121 条

WebSocket 安全配置检查

WebSocket 需独立核查鉴权与来源校验:握手阶段鉴权、消息级权限、Origin 校验与 wss 传输缺一不可。

WebSocket 要单独查什么

WebSocket 建立长连接后不再走常规 HTTP 请求响应模型,因此常规的接口鉴权与 CORS 检查都不适用。核查四件事:握手阶段是否鉴权、是否校验 Origin(防跨站 WebSocket 劫持)、消息级是否按对象归属授权、是否强制 wss。最常见的问题是把权限校验只做在握手阶段,之后的消息按 ID 操作就不再做归属判断。

基本信息

适用平台聊天、实时通知、协同编辑、行情推送类系统(RFC 6455)
核查点握手鉴权、Origin 校验、消息级授权、wss 强制
抓包方式浏览器开发者工具的 WS 面板或中间代理
参考标准RFC 6455、OWASP WebSocket Security Cheat Sheet

典型使用场景

  • 实时消息类业务上线前的权限模型核查
  • 排查“只测 HTTP 接口就漏掉”的越权路径
  • 核查内嵌场景中 iframe 与主站之间的连接来源
  • 评估断线重连与降级方案是否绕过了鉴权
  • 检查 wss 强制与证书配置是否到位

检查步骤

检查步骤
1. 抓取 WebSocket 握手请求:确认鉴权方式(Cookie、Token、查询参数)与 Origin 校验行为
2. 改造 Origin 头重复发起握手,观察服务端是否拒绝
3. 用测试账号订阅后修改消息中的对象 ID,验证消息级归属授权
4. 尝试用 ws:// 明文连接,确认是否被强制跳转或拒绝
5. 记录端点、鉴权方式、消息格式与发现的权限盲区

检查点与常见问题

检查点期望实现常见问题
握手鉴权建立连接前校验凭证连接匿名建立后再发 Token
Origin 校验白名单来源,非法来源拒绝完全不校验,任意站点可连
消息级授权按会话主体核对对象归属只校验连接,不校验每条消息
传输加密强制 wss允许 ws 明文连接
连接资源控制限制并发连接与消息频率无限制导致资源耗尽
把浏览器不做 CORS 限制理解为“无需 Origin 校验”是常见误解:WebSocket 不受同源策略保护,服务端自己的来源校验才是唯一防线。
消息格式建议在文档中固定下来:二进制与文本混用、多种消息类型交织的实现最容易在权限校验上留下缺口。

易错点

  • 只测 HTTP 接口,完全漏掉 WebSocket 通道上的越权与数据泄露
  • 把校验只做在握手阶段,后续消息按 ID 操作时不再核对归属
  • 认为浏览器同源策略会保护 WebSocket,因而省略 Origin 校验
  • 允许明文 ws 连接,令牌在链路上可被截获
  • 无连接数与消息频率限制,单个用户即可占用大量服务端资源

数据来源与参考

  • RFC 6455(WebSocket)
  • OWASP WebSocket Security Cheat Sheet
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌