piapia123
zh

Cookie 字符串转 JavaScript 代码

网络

所有处理都在浏览器本地完成,数据不上传服务器

输入
把文件拖到这里可直接载入
输出

把一段 Cookie 字符串变成 JavaScript:默认产出 `document.cookie = …` 语句,可以直接粘进浏览器控制台把登录态设上(调接口时冒充某个账号最常用);也可以产出对象字面量,在代码里读这些值。三件事必须说清楚:`HttpOnly` 是设不上的 —— 它存在的意义就是阻止 JavaScript 读写,浏览器会直接忽略带它的赋值,所以工具会省掉它并在注释里写明;`Domain` 同理,`document.cookie` 只对当前页面所在的域生效;值里出现分号、逗号或空格时浏览器会静默忽略整条赋值(控制台一声不响),工具会检测出来并在注释里点名是哪一个 cookie。解析规则与站内的 Cookie 格式化工具共用一份,请求头与响应头两种输入都能认。

功能

  • 两种产物:`document.cookie` 赋值语句、对象字面量
  • 请求头 Cookie 与响应头 Set-Cookie 两种输入都能认,自动判断
  • Path / Expires / Secure / SameSite 属性按原样带进产物,也可以全部去掉
  • HttpOnly 被省略并注明原因 —— 它本来就是用来挡住 JavaScript 的
  • Domain 被省略并注明原因 —— document.cookie 只对当前域生效
  • 值里含分号、逗号或空格时警告,并指出是哪一个 cookie
  • 值里的单引号与反斜杠会转义,产物始终是合法 JavaScript
  • 注释写英文 —— 它们要粘进 .js 文件
  • 全部在浏览器本地完成,Cookie 不外传

使用方法

  1. 把 Cookie 字符串粘进输入框(带不带 `Cookie:` / `Set-Cookie:` 前缀都行)
  2. 选产物形态:赋值语句,还是对象字面量
  3. 复制代码,粘进浏览器控制台或你的脚本

常见问题

为什么 HttpOnly 的 cookie 没有生成?
因为它设不上。`HttpOnly` 这个属性的全部意义就是「不许 JavaScript 读写这条 cookie」—— 浏览器会直接忽略带它的 `document.cookie` 赋值,不报错、不提示。所以工具把它省掉并在注释里写明,而不是生成一条永远不生效的语句让你以为设上了。真要设 HttpOnly,只能在服务端的 `Set-Cookie` 响应头里做。
为什么 Domain 也被省掉了?
因为 `document.cookie` 受同源策略约束,只能写当前页面所在域(及其子域)的 cookie。你从别处复制来的 `Domain=other.example` 在你自己页面上不会生效,留着它只会让人以为设上了。规则是:想让 `Domain` 生效,你必须在那个域下的页面上执行这段代码。
粘进控制台跑完了,cookie 却没设上?
最常见的原因是值里有非法字符:cookie 的值只允许一段特定的 ASCII 字符集,出现分号、逗号、空格或引号时浏览器会静默忽略整条赋值(控制台没有任何提示)。工具会在产物头部点名警告这种情况,解决办法是先把值做 URL 编码(`encodeURIComponent`)再设。另一个原因是页面在 iframe 里或被浏览器策略限制了第三方 cookie。
我在别的域下执行,能设成功吗?
不能。`document.cookie` 写的是当前页面的 cookie,跨域写不了 —— 这是同源策略,不是工具的限制。想验证一段 cookie,得在它对应的站点页面上打开控制台。另外 `Secure` 属性要求 https 页面,在 http 页面上带 `Secure` 的赋值同样会被忽略。
Cookie 会被上传吗?
不会。解析与生成全在浏览器内存里完成,页面不发送任何请求,断网也能用。⚠️ 不过要提醒一句:Cookie 常常是登录凭据,粘进任何在线工具都等于交出了它 —— 这个工具不上传,但你分享出去的代码片段里会带着它,注意别贴到公开的地方。

相关工具