返回

Cookie / Set-Cookie 解析

开发工具

正在载入

正在加载工具

工具代码会在打开时按需载入,请稍候。

本工具的全部运算都发生在你的浏览器中,输入内容不会发送到任何服务器。

关于这个工具

先选择 Cookie 请求模式或 Set-Cookie 响应模式,再粘贴抓取的文本。解析器按顺序保留重复条目,不拆分 Expires 日期中的逗号,并用行号和列号定位格式错误。结果及 JSON 导出默认遮蔽 Cookie 值和属性值;编辑框中的原始输入仍然可见。显示或导出原始值需要明确选择,可能泄露凭据。处理仅在当前页面内进行,不发起请求、不读取浏览器 Cookie、不保存输入历史,也不验证服务器端会话。

常见用途

  • 检查复制的 Cookie 请求中重复的名称,避免转换成键值映射时悄悄丢失条目。
  • 逐行查看 Set-Cookie、过期指令和自定义属性,同时明确浏览器及来源上下文未知。
  • 准备值已脱敏的结构化调试报告,分享前再检查保留的名称及元数据。

使用方法

  1. 1.Cookie 请求模式用于以分号分隔的 name=value 对;Set-Cookie 响应模式用于每行一个 Cookie 及其属性。只粘贴与模式对应的头部,重复的 Set-Cookie 必须分别保留。
  2. 2.执行解析,按提示的行号和列号修正错误。查看条目、属性和有条件的提示;粘贴文本不能确定原始来源、传输协议、接收时间或浏览器策略。
  3. 3.复制或下载 JSON 时建议保持值脱敏,并检查可见的名称和元数据。只有明确需要时才显示原始值:原始显示、剪贴板内容和下载文件可能包含可用凭据。

虚构 Cookie 示例

重复的请求名称与简单引号值

Cookie: session=demo-first; theme="dark"
Cookie: session=demo-second
Cookie 请求模式
两行中有 3 个 Cookie 对,保留原顺序
名称:session、theme、session
Cookie 值:默认遮蔽

两个 session 条目都会保留,解析器不替你选定生效值。带引号的 dark 有效,因为其中只有允许的 Cookie 字符;引号不能让逗号、分号、反斜杠或空格成为合法的值内容。

独立响应 Cookie 与 Expires 日期逗号

Set-Cookie: session=demo-session; Expires=Mon, 21 Oct 2030 07:28:00 GMT; Domain=example.com; Path=/; Secure; HttpOnly
Set-Cookie: theme=dark; Path=/; SameSite=Lax
Set-Cookie 响应模式
两个独立 Cookie:session、theme
首个 Cookie 属性:Expires、Domain、Path、Secure、HttpOnly
Cookie 值和属性值:默认遮蔽

Expires 日期中的逗号保留在首个 Cookie 的属性中。Domain 与 Path 是解析到的声明,不代表这些 Cookie 适用于未知的来源 URL。Secure 和 HttpOnly 是不带值的标志属性。

Max-Age 优先于更晚的 Expires 日期

Set-Cookie: session=demo-session; Expires=Mon, 21 Oct 2030 07:28:00 GMT; Max-Age=0; Path=/; Secure; HttpOnly
Set-Cookie 响应模式
一个 Cookie 同时声明 Max-Age 与 Expires
适用的 Max-Age 优先
已存储 Cookie 状态及登录会话有效性:未知

虚构输入的 Max-Age=0 请求立即过期,即使 Expires 指定了更晚的日期。它不能证明浏览器收到了响应、删除了对应的已存储 Cookie,或结束了服务器端会话。

SameSite 关联规则与未知属性

Set-Cookie: partner=demo-partner; SameSite=None; X-Trace=demo-internal
Set-Cookie 响应模式
一个 Cookie 带有 SameSite 与 X-Trace 属性
需要检查 SameSite/Secure 组合:缺少 Secure
保留未知属性,默认遮蔽值

支持该规则的浏览器要求 SameSite=None 配合 Secure。X-Trace 作为未知属性保留供检查,默认报告中会遮蔽它的值;不会据此推断浏览器行为。

常见 Cookie 解析误区

  • 选择错误模式或粘贴完整 HTTP 响应:请只提供与当前模式一致的 Cookie 或 Set-Cookie 输入。
  • 用逗号拼接多个 Set-Cookie 字段:每行只保留一个 Cookie,Expires 日期内的逗号仍属于该日期。
  • 认为引号能转义任何字符:加了引号的 Cookie 值仍不能包含空格、逗号、分号、反斜杠或控制字符。
  • 把重复名称当作普通字典:应检查每次出现及其位置,不要悄悄只保留最后一个值。
  • 把过期或安全属性当作登录有效、Cookie 已被接受或应用安全的证明:相关服务器、来源和浏览器状态仍然未知。
  • 直接分享原始报告,或认为脱敏会隐藏全部信息:请检查导出模式及保留的名称、元数据。

限制与说明

  • 这是有处理上限的粘贴文本检查器,不是完整的浏览器 Cookie 实现。超出界面显示的大小、行数或条目上限时,请先缩减输入;语法错误不代表获得了成功的部分结果。
  • Cookie 和 Set-Cookie 使用不同语法。Cookie 值可以用一对双引号包裹,但即使加了引号,值内也不能包含空格、控制字符、非 ASCII 字符、逗号、分号或反斜杠。应在生成 Cookie 时先编码这些数据;本工具不会修复错误输入。
  • 每行 Set-Cookie 描述一个 Cookie。Expires 日期逗号会保留,不能用来分隔 Cookie。重复名称、重复属性和未知属性均可检查,但出现这些声明不代表浏览器会接受或执行。
  • 请求 URL、来源、传输协议及实际浏览器策略未知。本工具不验证域名或路径是否适用、公共后缀资格、HTTPS、Cookie 存储、跨站发送或登录会话是否有效。过期提示解释的是指令,不代表会话仍可使用。
  • 默认遮蔽的是结果及导出中的 Cookie 值和属性值,不包含原始输入,也不会隐藏所有可识别信息。名称、数量和位置仍可能敏感。显示或导出原始值可能泄露秘密;剪贴板及下载文件不受当前页面控制。

常见问题

为什么必须区分请求模式和响应模式?

Cookie 携带请求中的 name=value 对,不包含最初设置 Cookie 的属性。Set-Cookie 则定义一个响应 Cookie 及后续属性。把 Path、Secure 或 SameSite 当作请求属性会凭空增加信息;合并 Set-Cookie 行还可能破坏 Expires 日期。

Max-Age 和 Expires 谁优先?

适用且有效的 Max-Age 优先于 Expires。Max-Age 表示从接收时起计算的秒数,零或负数请求立即过期。粘贴记录无法确定浏览器何时收到或最终保留了什么;这两个指令也不能证明服务器仍接受该会话。

SameSite=None 加上 Secure 就一定能跨站发送吗?

不能。支持该规则的浏览器要求 SameSite=None 配合 Secure,但来源、请求上下文、浏览器支持和隐私策略仍会影响结果。Secure 限制传输方式,HttpOnly 限制脚本访问;它们都不是完整的安全评估,本工具也不会测试网站。

默认 JSON 导出可以直接安全分享吗?

默认导出会遮蔽 Cookie 值和属性值,包括未知属性的值。分享前仍需检查 Cookie 名称及其他保留的元数据;脱敏不等于完全匿名。明确选择原始值后,输出可能暴露会话凭据及其他私人数据。

相关工具