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