跳转到内容

WebSocket 重放 ​

WebSocket 重放创建可复用的会话,用于测试 WebSocket 端点。你可以使用捕获的握手详情重新连接、编辑消息、发送新帧,并观察服务器响应。

创建会话 ​

有两种创建 WebSocket 重放会话的方式:

  • 在 WS / SSE 历史记录中右键单击捕获的 WebSocket 消息,选择发送到 WS 重放。
  • 打开 WS 重放,使用 ws:// 或 wss:// URL 手动创建会话。

手动会话可包含用于 Cookie、授权令牌、协议协商或应用专属握手值的自定义头部。

会话设置 ​

字段说明
名称便于阅读的会话标签。
URLWebSocket 端点。URL 必须以 ws:// 或 wss:// 开头。
头部连接时发送的可选握手头部。

更改 URL 或头部后,Ogma 会在打开下一个连接前保存会话。

连接 ​

选择会话并点击连接。连接状态显示套接字是未连接、正在连接、已打开、正在关闭还是已关闭。

切换目标或更改握手详情前,使用断开连接。编辑 URL 或头部后重新连接,以测试新的服务器路径或认证上下文。

连接只完成 WebSocket 握手。许多应用随后需要认证或初始化帧,才会接受业务消息。以捕获的第一条客户端消息作为基线,等待其确认后,再发送修改后的消息。捕获的 Cookie、签名 URL 和令牌可能已经过期。

发送消息 ​

使用消息编辑器编辑载荷,并通过选中的会话发送。文本载荷以 WebSocket 文本帧发送。

要发送十六进制字节,请切换到二进制模式。重放捕获的第一条 WebSocket 消息有助于重新发送初始化消息,重放捕获的出站消息序列会按顺序发送捕获的客户端消息。请在时间线中检查回复,不要假定发送序列就重建了应用状态。

协议编辑器支持原始 WebSocket 和托管 GraphQL 模式(graphql-transport-ws 和旧版 graphql-ws)。选择目标使用的协议,并提供其连接参数。需要时保留原始子协议头部;请求错误协议可能导致升级失败。

刷新时间戳默认关闭。仅为需要新时间戳的未签名请求启用:更改签名 URL 或载荷可能使签名失效。自动重连会在断开连接后重试,但新连接仍可能需要应用层认证。

从历史记录发送的捕获消息会以原始载荷为起点,因此你可以每次只更改一个字段并比较行为。

消息时间线 ​

时间线记录选中会话发送和接收的帧。

列说明
方向帧是由客户端发送,还是从服务器接收。
操作码帧类型,例如 text、binary、ping、pong 或 close。
大小载荷大小。
时间Ogma 观察到该帧的时间。

选择消息以检查载荷。JSON 载荷会在可能时格式化;原始内容仍可用于精确检查。

测试流程 ​

  1. 在 WS / SSE 历史记录中捕获正常的 WebSocket 交互流程。
  2. 将值得关注的客户端消息发送到 WS 重放。
  3. 重新连接并重新发送原始消息,确认基线行为。
  4. 每次修改一个字段、令牌、ID 或命令。
  5. 在安全发现中记录已确认的行为,或在笔记中保留记录。

故障排查 ​

症状检查内容
升级被拒绝或禁止URL、Origin、Cookie、授权,以及过期的签名查询值。
无效或未请求的子协议将升级头部与捕获的握手及所选协议模式进行比较。
连接成功后关闭检查系统/关闭消息,并发送必需的初始化或认证帧。
消息已发送但没有有用回复确认订阅 ID、先前消息、认证和应用状态;WebSocket 传输不会自动重建浏览器会话。

使用 MCP 时,请使用专用的 WS 重放消息列表/读取工具和断开连接工具。捕获历史记录工具读取的是不同的交互记录;参阅 MCP 工具参考。

专有软件。保留所有权利。