Cookie 格式化
网络所有处理都在浏览器本地完成,数据不上传服务器
⚠️ 它不联网:Cookie 要你自己取(开发者工具的 Application → Cookies,或 `curl -I` 返回的 `Set-Cookie` 行)。⚠️ 另外提醒一句:别把带有真实登录态的 Cookie 粘进任何在线工具 —— 那等于把会话交出去。这个工具完全在本地跑,但习惯要养对。 把 `Cookie` 或 `Set-Cookie` 那一行拆成看得清的表 —— 从浏览器开发者工具里复制出来直接粘就行。 ⚠️ 这两种头长得像但意思完全不同。请求头里的 `Cookie` 是一张扁平的名值表: ``` a=1; b=2; session=abc ``` 那是三个 cookie。而响应头里的 `Set-Cookie` 每一行只描述一个 cookie,分号后面是它的属性: ``` session=abc; Path=/; HttpOnly; Secure ``` 同样的 `a=1; b=2` 放在这里,就是「名为 a 的 cookie,带一个叫 b 的属性」。判断错了输出会完全不同,而且两种错法都不会报错 —— 所以这里会自动识别,判断得不满意也可以手动指定。 识别规则是「有没有出现已知的 cookie 属性名(Path / Domain / Expires / Max-Age / Secure / HttpOnly / SameSite)」,不是「第一个分号之后还有没有内容」—— 后者会把 `a=1; b=2` 这种极常见的请求头当成 Set-Cookie。 顺带把值里的 `%20` 这类编码解开,并把每个 cookie 缺哪个安全属性点出来:没有 `HttpOnly` 意味着页面上的脚本能读到它(一次 XSS 就能偷走会话),没有 `Secure` 意味着明文 HTTP 下也会发出去,没有 `SameSite` 意味着跨站请求会带上它(CSRF 的温床)。
功能
- 请求头 `Cookie` 与响应头 `Set-Cookie` 都能解析,自动判断并有手动覆盖
- `Set-Cookie` 的属性拆成旁注,不会混进「值」里被一起复制走
- `Expires` 与 `Max-Age` 换算成具体时间,已过期的明确标出
- 提示每个 cookie 缺了 `HttpOnly` / `Secure` / `SameSite` 中的哪一个
- ⚠️ 认 `Partitioned`(CHIPS)—— 并且缺 `Secure` 时单独警告:那个组合会被浏览器直接拒绝,与「少了 HttpOnly」那种「能跑但更弱」不是一回事
- 可选解开值里的百分号编码
- 被引号包起来的值里的分号不会被当成分隔符
- 全部在本机解析,cookie 不会离开这台设备
使用方法
- 把 `Cookie` 或 `Set-Cookie` 那一行粘进左侧(多行也可以)
- 判断得不对时手动指定解析方式
- 结果立刻出现,每一行都能单独复制
常见问题
- 为什么我的 `a=1; b=2` 被解成了两个 cookie?
- 因为在 `Cookie` 请求头里它确实就是两个 cookie —— 请求头用分号分隔多个独立的名值对,这是最常见的形态。 只有在 `Set-Cookie` 响应头里,分号后面的东西才表示属性。两者的区分靠「有没有出现已知的属性名」:`a=1; b=2` 里没有 `Path`、`HttpOnly` 这类名字,所以按请求头解。加了属性就变了 —— `a=1; b=2; Secure` 会被解成一个叫 `a` 的 cookie,`b=2` 是它的一个属性。 如果自动判断不合你的用途,把「解析方式」改成手动指定就好。
- 「没有 HttpOnly」这条提示有多要紧?
- 对会话 cookie 来说非常要紧。`HttpOnly` 的作用是让这个 cookie 对 JavaScript 不可见 —— 页面上一旦有 XSS(哪怕只是某个第三方脚本被投毒),没有 `HttpOnly` 的 cookie 就能被 `document.cookie` 直接读走并发到攻击者的服务器上,攻击者拿到会话就等于拿到了这个账号。 `Secure` 与 `SameSite` 同理但场景不同:`Secure` 防的是明文传输被中间人截获,`SameSite` 防的是跨站请求自动带上 cookie(也就是 CSRF)。三个都设上几乎总是对的。
- `Max-Age` 和 `Expires` 有什么区别?
- `Max-Age` 是「从现在起多少秒」,`Expires` 是一个绝对时间点。两者都存在时 `Max-Age` 优先(RFC 6265 的规定)—— 因为绝对时间会受客户端时钟不准、时区设置错误的影响,而相对秒数不会。 另外两个常见情况:值为 0 或负数表示立即删除这个 cookie(登出时就是这么做的);两个都不设置则是会话 cookie,浏览器关掉就没了 —— 这也是为什么有些站点关掉浏览器就得重新登录。
相关工具
HTTP 头格式化
网络把抓包或 curl 拿到的 HTTP 头摊成表格,换算体积与字符集,并指出响应里缺了哪些安全头。全部在本机解析。
HTTP 状态码
网络HTTP 状态码查询与速查:输入编号查含义、1xx 到 5xx 分类、常见场景与排查提示,也能用关键词反查编号。全部在浏览器本地完成。
Base64 编解码
编码把文本转成 Base64,或把 Base64 还原成文本,中文与 emoji 都按 UTF-8 正确处理。全部在浏览器本地完成,内容不上传。
URL 编解码
编码把中文、空格与符号转义成 %XX,或把 %XX 还原成文本;整条 URL 与单独的参数值要选对方式,选错不会报错,但链接会打不开。全部在浏览器本地完成。
URL 解析
网络在线 URL 解析:拆出协议、主机、端口、路径、查询参数与锚点,参数逐个解码并与原始值对照,缺协议自动补 https://。全部在浏览器本地完成。
UA 解析
网络在线 User-Agent 解析:识别浏览器、版本、操作系统、设备类型与渲染引擎,并列出命中的匹配规则。结果基于模式匹配,仅供参考。全部在浏览器本地完成。