代码改变世界

cookie属性介绍

2023-11-28 16:14  默默不语  阅读(26)  评论(0编辑  收藏  举报
  1. Domain
    • 指定了可以访问该 cookie 的 web 站点或域
    • 指定 domain 后, 子域名可以访问父域名 cookie
    • 缺省时, 默认为仅当前文档的主机可访问, 子域名不可以访问
  2. Path
    • 指定了 web 站点下可以访问该 cookie 的路径, 包括子路径
    • 例: Path=/docs, 则以下地址都可以匹配:
      /docs
      /docs/doc1
      /docs/doc1/doc1-1
      
  3. Expires
    • cookie 的过期时间
    • 缺省时该 cookie 为会话 cookie, 在用户关闭浏览器时失效
  4. MaxAge
    • cookie 有效时间, 单位: 秒
    • MaxAge 优先于 Expires
    • <= 0 时, token 立即过期
  5. Size
  6. Http Only
    • 防止客户端脚本通过 document.Cookie, 有助于保护 cookie 不被跨站脚本攻击窃取或篡改
    • 但是一些浏览器可以阻止客户端脚本对 cookie 的读操作, 但允许写操作
    • 大多数浏览器仍允许通过 XMLHTTP 对象读取 HTTP 响应中的 Set-Cookie 头
  7. Secure
    • 只有 https 请求时该 cookie 才会被发送
  8. SameSite
    • 用来决定 cookie 的可用网站范围, 默认为 Lax
    • Strict: 仅用于同站请求
    • Lax: 同站请求, 或者跨站的 get 的会导致页面 url 发生变化的导航行为
      • 比如在 a.com 页面里嵌入了 一个链接 b.com, 那么用户点击此链接时发起的初始请求会带上 b.com中设置为 Lax 的 cookie, 而设置为 Strict 的 cookie 则不会被带上.
    • None: 同站和跨站请求都会被带上, SameSite=None 时,Secure 必须设置