跳到内容

🍪 Cookie 检查器

输入 URL 获取所有 Set-Cookie 头部并分析 Secure / HttpOnly / SameSite / Domain / Path / Expires、前缀和大小限制。

完全免费 无需注册 服务器处理 无日志 / 数据库 限速 5 种语言 深色模式

⚠️ 请求从 DevLab 服务器发起。不允许私有 IP 地址和 localhost。

📚 Cookie 属性参考

Secure: 仅通过 HTTPS 发送

HttpOnly: JavaScript 不可访问(防 XSS)

SameSite=Strict: 跨站请求不发送

SameSite=Lax: 仅在顶级 GET 导航时发送(默认)

SameSite=None: 跨站发送(必须 Secure)

__Secure- prefix: 必须 Secure 标志

__Host- prefix: 必须 Secure + 无 Domain + Path=/(强隔离)

Partitioned (CHIPS): 在分区第三方上下文中工作

📖 本诊断能告诉你什么

本诊断会连接你指定的 URL,解析返回的 Set-Cookie 标头,查看是否带有 Secure / HttpOnly / SameSite 等属性。由 JavaScript 之后通过 document.cookie 设置的 Cookie 无法在此检测到。分析统计与广告标签几乎都走这条路径,因此浏览器中实际保存的数量通常多于此处所列。完整情况请在开发者工具的 Application 面板查看。

检查项 含义 未通过时的处理
未显式指定 SameSite 未指定时,现代浏览器按 Lax 处理。Lax 只在顶层 GET 导航时发送,跨站 POST、iframe 内、fetch 都不会发送。支付服务商以 POST 跳回时会话立刻失效的问题,几乎都源于此。 请按用途务必显式指定:普通会话用 SameSite=Lax,需要强防 CSRF 的管理后台用 Strict,从外部以 POST 跳回的支付流程或嵌入场景用 SameSite=None; SecureNone 若没有 Secure,整个 Cookie 会被丢弃,请成对书写。
设置了 Domain 属性 与直觉相反,Domain=example.com 是「扩大」而非「缩小」范围的写法。不写时只发送给该主机(host-only),一旦写上就会发送给所有子域。只要存在一个像 user.example.com 这样允许用户发布内容的主机,主站会话就能从那里被读取。 最安全的默认做法是不写 Domain,只在确实需要共享时以最小范围指定。若想进一步加固,可使用带 __Host- 前缀的名称,浏览器会强制要求 Secure、无 Domain、Path=/,配置疏漏也无法让作用域扩大。
Cookie 数量与体积过多 单个 Cookie 约 4KB,单个域名大致上限 50 个,超出后浏览器会静默丢弃较旧的。「偶尔被登出」「购物车有时清空」这类难以复现的问题,其真身往往就是它。此外 Cookie 会附加在对该域名的每一次请求上,即使获取图片与 CSS 也会消耗带宽。 Cookie 中只放标识符,状态保存在服务器端。把整个 JWT 塞进去很容易超过 4KB。把非认证类的设置(显示主题、已关闭的横幅)移到 localStorage,即可不再随请求发送。将静态资源交由独立域名或 CDN 分发,那里不会附带 Cookie。

欧盟 ePrivacy 指令及各国同类规定所要求的是「取得同意之前不得写入 Cookie」,而非仅仅展示横幅。若在用户点击同意之前分析标签就已 Set-Cookie,即使有横幅也可能不满足要求。用本诊断查看打开首页瞬间返回的 Cookie,即可做一次初步确认。无论从技术还是法律角度,最可靠的对策都是减少 Cookie

🔗 相关工具