Set-Cookie解析器
Set-Cookie 解析
按行粘贴 Set-Cookie 响应头,查看属性、潜在风险和 SameSite / Secure 组合是否合理。
Cookie 属性卡片
setCookieParser.attr.maxAgeHint
JSON 预览
[
{
"index": 0,
"raw": "session=abc123; Path=/; HttpOnly; Secure; SameSite=Lax",
"name": "session",
"value": "abc123",
"decodedValue": "abc123",
"attributes": [
{
"key": "path",
"value": "/"
},
{
"key": "httponly",
"value": null
},
{
"key": "secure",
"value": null
},
{
"key": "samesite",
"value": "Lax"
}
],
"attributeMap": {
"path": "/",
"httponly": true,
"secure": true,
"samesite": "Lax"
},
"warnings": []
},
{
"index": 1,
"raw": "preview=1; Max-Age=600; SameSite=None; Secure",
"name": "preview",
"value": "1",
"decodedValue": "1",
"attributes": [
{
"key": "max-age",
"value": "600"
},
{
"key": "samesite",
"value": "None"
},
{
"key": "secure",
"value": null
}
],
"attributeMap": {
"max-age": "600",
"samesite": "None",
"secure": true
},
"warnings": [
"warn.missingHttpOnly",
"warn.missingPath"
]
}
]浏览器为什么不收 Cookie,往往不是值错了,而是 Set-Cookie 属性错了。
相关推荐
什么是 Set-Cookie解析器?
Set-Cookie解析器是专门面向 HTTP 响应头里 `Set-Cookie` 内容的调试工具。它的目标不是简单把一行文本按分号拆开,而是帮助开发者判断:服务端这条 Cookie 配置对不对、浏览器为什么没收下、哪些属性组合存在安全或兼容性风险、以及当前 Set-Cookie 是否适合跨站、SSO、iframe、第三方 Cookie 或会话场景。
和请求头里的 Cookie 不同,Set-Cookie 是服务器“发给浏览器的配置指令”。它不仅包含 `name=value`,还会携带 SameSite、Secure、HttpOnly、Path、Domain、Expires、Max-Age、Partitioned 等属性,这些字段直接决定浏览器是否写入、何时失效、在哪些路径和域名下生效,以及能否在跨站请求中发送。因此,很多“登录态丢失”“浏览器不带 Cookie”“跨域场景无效”的根因,其实不在值本身,而在 Set-Cookie 的属性配置上。
当前页面的价值就在于把这些属性从原始响应头里结构化拆出来,再结合浏览器真实规则做静态检查。例如 SameSite=None 是否缺少 Secure、Partitioned 是否搭配 Secure、__Host- 前缀是否错误设置了 Domain、Max-Age 是否无效或等于 0、Expires 是否缺少 Max-Age 等。这些问题浏览器通常不会像语法错误那样直接弹提示,而是静默拒绝或表现为“就是不生效”,因此工具化检查非常重要。
如果你只想知道请求里当前带了哪些 Cookie,不该停留在这个页面,而应该去看更适合拆解请求头的「HTTP Cookie解析器」。当前页更适合“浏览器为什么没写入”“服务端这条 Cookie 配置有没有隐患”“跨站和安全属性组合是否合理”这类响应头排查场景。
适用场景
- 浏览器拒绝写入 Cookie 时,快速定位是 SameSite、Secure、HttpOnly 还是 Path / Domain 配置问题
- 第三方登录、SSO、iframe 嵌入或跨站请求场景下,检查 SameSite=None 是否正确搭配 Secure
- 安全审计时批量检查接口返回的 Cookie 是否缺 HttpOnly、缺 SameSite 或存在高风险属性组合
- 验证 __Host- / __Secure- 前缀 Cookie 是否满足浏览器强约束,避免被静默丢弃
- 调试 Partitioned Cookie / CHIPS 三方分区方案时,确认 Partitioned 与 Secure 是否同时声明
- 对比开发、测试、生产环境的 Set-Cookie 响应头差异,排查环境切换后登录态异常
使用方法
- 从浏览器 DevTools、抓包工具或服务端日志里复制 Set-Cookie 响应头内容(支持多行)
- 粘贴到输入区,工具会自动剥离 `Set-Cookie:` 前缀并逐行解析
- 查看每条 Cookie 的名称、值、URL 解码值、属性卡片和告警标签
- 复制原始头或查看 JSON 预览,把结果继续发给后端、贴到 Issue 或写入测试脚本
功能特点
- 多条 Set-Cookie 独立解析:每行单独成卡片,逐条查看名称、原始值、URL 解码值和属性
- 14 类常见问题自动检查:覆盖 SameSite、Secure、HttpOnly、Path、Domain、Max-Age、Expires、__Host- / __Secure- 前缀与 Partitioned 等高频风险
- 完整属性拆解:按 SameSite、Secure、HttpOnly、Path、Domain、Expires、Max-Age、Partitioned 等字段结构化展示
- Max-Age 人类可读换算:秒数自动转为分钟、小时、天,减少手动换算成本
- 多行批量输入:可直接粘贴 DevTools 或抓包工具里复制出的整段 Set-Cookie 响应头
- 原始头复制与 JSON 预览:既方便回传给后端,也方便写文档、Issue、脚本和测试用例
- 本地零上传:敏感 Session、Token 和登录态 Cookie 在浏览器内解析,不离开本机
什么时候用 Set-Cookie解析器,什么时候用另外两个页面?
看清“服务端设置了什么”和“请求里实际带了什么”是两件事,别混着查。
| 工具 | 适合输入 | 最适合场景 | 核心优势 |
|---|---|---|---|
| Set-Cookie解析器(当前页) | Set-Cookie 响应头 | 排查浏览器为什么不收 Cookie、为什么跨站不生效、为什么安全属性配置有风险 | 属性拆解完整,并自动做 14 类高频配置检查 |
| HTTP Cookie解析器 | Cookie 请求头、document.cookie | 确认请求里实际带了哪些 Cookie、值是否被 URL 编码、是否有重复名称 | 更聚焦请求头名值对拆解和标准化输出打开 HTTP Cookie解析器 |
| Cookie解析器 | Cookie 字符串与 Set-Cookie 混合排查场景 | 还不确定手里数据来源,或想在一个页面中快速切换 Cookie / Set-Cookie 两种模式 | 更像 Cookie 调试总入口,并支持 Netscape Cookie File 导出打开 Cookie解析器 |
最佳实践
先判断问题出在“设置失败”还是“请求没带上”
如果浏览器根本没写入 Cookie,优先看当前页;如果浏览器已经写入,但后续请求里没带上,就要结合 HTTP Cookie解析器一起看。Set-Cookie 和 Cookie 请求头是两个不同阶段。
跨站场景先看 SameSite=None 和 Secure 的组合
SSO、第三方登录、iframe 嵌入、跨域请求最常见的坑,就是 SameSite=None 却没配 Secure。先把这组问题排干净,再去看服务端逻辑和浏览器策略。
__Host- / __Secure- 前缀不要只看名字,要看约束是否完整
很多团队以为给 Cookie 名字加上 `__Host-` 或 `__Secure-` 就已经更安全了,但如果 Secure、Path=/、Domain 等配套条件没满足,浏览器仍然会拒绝写入。
写文档和复现 Issue 时优先保留原始头和 JSON 两份材料
原始头适合给后端和运维核对真实返回值;JSON 适合贴到 Issue、测试用例和脚本里继续处理。两份一起保留,比只截一张 DevTools 图更利于复现和协作。
常见问题
Set-Cookie 解析器和 Cookie 请求头解析器有什么区别?
Set-Cookie 解析器面向服务端响应头,重点看浏览器“会不会收下这条 Cookie、属性有没有问题”;Cookie 请求头解析器面向浏览器发出去的请求,重点看“这次请求到底带了哪些 Cookie”。如果你在排查 SameSite、HttpOnly、Secure、Path、Domain、Expires、Max-Age 等属性配置问题,应该优先使用当前页。
HTTP Cookie解析器为什么浏览器明明收到了响应,却没有写入 Cookie?
这正是当前工具最适合解决的问题。常见原因包括 SameSite=None 没配 Secure、Secure Cookie 试图在 HTTP 页面设置、__Host- 前缀违规、Partitioned 缺 Secure、Path 或 Domain 配置不合理、Max-Age 无效或直接为 0,以及浏览器第三方 Cookie 策略限制。
工具会检查哪些常见 Set-Cookie 风险?
当前页会自动检测 14 类高频问题,包括 SameSite=None 缺 Secure、SameSite 值非法、Partitioned 缺 Secure、缺 HttpOnly、缺 Path、缺 SameSite、__Host- 前缀缺 Secure / Path 不是 / / 错配 Domain、__Secure- 前缀缺 Secure、Max-Age 无效、Max-Age=0、Domain 以点号开头以及 Expires 未配 Max-Age 等。
为什么 SameSite=None 一定要配 Secure?
现代浏览器要求跨站可发送的 Cookie 如果声明 `SameSite=None`,就必须同时带 `Secure`,否则浏览器通常会直接拒绝写入。这类问题在第三方登录、SSO、iframe 嵌入和跨域请求调试中非常常见。
为什么 __Host- 和 __Secure- 前缀 Cookie 会被浏览器拒绝?
`__Host-` 和 `__Secure-` 是带强约束的安全前缀。`__Host-` 要求必须 Secure、Path=/ 且不能设置 Domain;`__Secure-` 至少要求 Secure。如果违反这些规则,浏览器会直接忽略该 Cookie。
Max-Age 和 Expires 应该怎么看?
Max-Age 是相对秒数,通常优先级高于 Expires;Expires 是绝对时间点,受客户端时钟影响。很多服务端只写 Expires 不写 Max-Age,虽然能工作,但在调试时更容易因为时区或系统时间偏差带来误判。
这个工具适合排查跨站 Cookie 和第三方 Cookie 问题吗?
适合。无论是第三方登录、SSO、嵌入 iframe、跨域接口还是 CHIPS(Partitioned Cookie)场景,这个工具都能帮助你快速看清 SameSite、Secure 和 Partitioned 的组合是否合理。
解析结果支持复制或导出吗?
支持。你可以一键复制原始 Set-Cookie 头,也可以查看结构化 JSON 预览,把每条 Cookie 的名称、值、属性和告警结果继续贴到 Issue、文档、测试脚本或联调记录里。
会不会把我复制的 Session、Token 上传到服务器?
不会。Set-Cookie 内容解析、URL 解码、属性拆解和告警检查都在浏览器本地完成,不会把敏感响应头上传到服务器。
术语表
- Set-Cookie
- HTTP 响应头,服务器通过它告诉浏览器存储一条 Cookie。一个响应可以出现多条 Set-Cookie,每条通常对应一个 Cookie。
- SameSite
- 控制跨站请求是否携带 Cookie 的属性。常见取值为 Strict、Lax、None;其中 None 往往要求同时设置 Secure。
- HttpOnly
- 设置后前端 JavaScript 不能通过 document.cookie 读取该 Cookie,主要用于降低 XSS 窃取会话的风险。
- Secure
- 设置后浏览器只会在 HTTPS(或 localhost 特例)连接中发送该 Cookie,避免敏感 Cookie 在明文 HTTP 中暴露。
- Max-Age
- Cookie 的相对生存时间,单位是秒。通常优先级高于 Expires,推荐在服务端明确设置。
- Expires
- Cookie 的绝对过期时间点,依赖客户端本地时间。单独使用时调试成本通常比 Max-Age 更高。
- Path
- 限制 Cookie 生效的 URL 路径前缀。Path 不匹配时,即使 Cookie 已写入,后续请求也不会带上。
- Domain
- 限制 Cookie 生效的域名范围。不设置时通常只限当前主机;设置后可能作用到子域。
- Partitioned(CHIPS)
- 第三方 Cookie 分区存储方案,常用于浏览器逐步收紧第三方 Cookie 后的替代路径。当前实现通常要求搭配 Secure。
- __Host- / __Secure- 前缀
- 浏览器支持的高安全 Cookie 命名前缀,带有强约束规则。违反规则时浏览器会拒绝接收对应 Cookie。
SameSite 三种策略对比速查表
跨站 Cookie 排查时,先看 SameSite 的行为边界,再看 Secure 是否缺失。
| SameSite 值 | 跨站顶级导航(GET) | 跨站子资源(img/iframe/script) | 跨站 POST 表单 | 跨站 XHR/fetch | 是否必须 Secure |
|---|---|---|---|---|---|
| Strict | 不发送 | 不发送 | 不发送 | 不发送 | 否 |
| Lax(默认) | 发送 | 不发送 | 不发送 | 不发送 | 否 |
| None | 发送 | 发送 | 发送 | 发送 | 必须设置 Secure |
Set-Cookie 调试高频问题对照表
浏览器静默拒收 Cookie 时,先按下面这些方向排查,通常比盯着响应体更快。
| 现象 | 高概率原因 | 优先检查 |
|---|---|---|
| 浏览器完全不写入 Cookie | SameSite=None 缺 Secure、前缀违规或属性组合不合法 | 先看当前页的告警标签和属性卡片 |
| 跨站 / iframe 场景不生效 | SameSite 过严、Secure 缺失或第三方策略限制 | 重点看 SameSite、Secure、Partitioned |
| Cookie 一写入就失效 | Max-Age=0、Max-Age 非法、Expires 时间有问题 | 先看 Max-Age,再看 Expires |
| __Host- / __Secure- Cookie 无效 | Secure、Path=/ 或 Domain 约束没满足 | 核对前缀告警是否命中 |
| 开发环境正常,生产环境不正常 | HTTPS、Domain、Path、SameSite 或代理层响应差异 | 复制原始头,对比不同环境的 Set-Cookie 返回 |
Privacy & Security
Set-Cookie 响应头解析、URL 解码、属性拆解与 14 类告警检查全部在浏览器本地完成。粘贴的 Session、Token、登录态 Cookie 不会上传到任何服务器。
- Authentication Header Generator
- Cache-Control Parser
- Content-Disposition 解析器
- CORS Header Builder
- CORS跨域检查器
- CSP Builder
- cURL 转代码生成器
- DNS 全球传播检查
- DNS查询
- Forwarded Header Parser
- Hreflang Generator
- HSTS Analyzer
- HTTP Cookie解析器
- HTTP Headers Checker
- HTTP 请求测试器
- HTTP状态码查询
- IP 归属地查询
- IPv4 转换器
- IPv4 Range Expander
- IPv6 工具箱
- Link Header 解析器
- MX 查找
- 端口检查器
- URL 参数生成器
- Rate Limit Header 解析器
- 重定向链检查器
- Robots.txt 生成器
- Robots.txt 检查器
- Security Headers Checker
- Security.txt 生成器
- Set-Cookie解析器
- Site Network Audit
- Sitemap 生成器
- Sitemap Inspector
- SSL证书检测
- 子网计算器
- URL 解析器
- User-Agent解析器
- UTM 链接生成器
- WebSocket测试
- 我的 IP 是什么?
- WHOIS查询