我是靠谱客的博主 顺心季节,最近开发中收集的这篇文章主要介绍cookie的生命周期cookie的生命周期,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

cookie的生命周期

文章目录

  • cookie的生命周期
    • 1.cookie的生命周期
    • 2.限制访问Cookie
    • 3.Cookie的作用域
    • 4.Cookie prefixes

1.cookie的生命周期

cookie的生命周期可以通过两种方式定义:

  • 会话期cookie是最简单的cookie:浏览器关闭后会被自动删除。会话期cookie不需要指定过期时间(Expires)或者有效期(Max-Age)。需要注意的是,有些浏览器提供了会话恢复功能,这种情况即使关闭了浏览器,会话期cookie也会被保留下来,这会导致cookie的生命周期无限期延长

  • 持久性cookie的生命周期取决于过期时间(Expires)或者有效期(Max-Age)指定的一段时间。

    • 当Cookie的过期时间被设定时,设定的日期和时间只与客户端相关,而不是服务端。

2.限制访问Cookie

  • Secure:标记为Secure的cookie通过被HTTPS协议加密过的请求发送给服务端。可以预防

    man-in-the-middle

    攻击。

    • 从Chrome52和firefox 52开始,非Https的站点无法使用Cookie的Secure标记。
  • HttpOnly:JavaScript Document.cookie API无法访问带有HttpOnly属性的cookie,此类cookie仅作用于服务器。此属性有助于缓解跨站点脚本(XSS)攻击。

3.Cookie的作用域

  • Domain:指定了哪些主机可以接受cookie。如果不指定,

    默认为origin,不包含子域名

    。如果指定了Domain,一般包含子域名。

    • 当前大多数浏览器遵循 RFC 6265,设置 Domain 时 不需要加前导点。浏览器不遵循该规范,则需要加前导点,例如:Domain=.mozilla.org
  • Path:指定了主机下的哪些路径可以接受cookie。以"/"作为路径分隔符,子路径也会被匹配。

  • SameSite:允许服务器要求某个cookie在跨站请求时不会被发送,其中Site由可注册域定义,从而可以组织跨站请求伪造攻击(CSRF)。取值如下:

    • None:浏览器会在同站请求、跨站请求下继续发送cookies,不区分大小写。

    • Strict:浏览器只在访问相同站点时发送cookie。

    • Lax:与Strict类似,但用户从外部站点导航至URL时(例如通过链接)除外。在新版本浏览器中,为默认选项为默认选项,Same-site cookies 将会为一些跨站子请求保留,如图片加载或者 frames 的调用,但只有当用户从外部站点导航到URL时才会发送。如 link 链接。

      • 以前,SameSite如果没有设置,默认行为等同于None,cookies会被包含在任何请求中,包括跨站请求。
      • 大多数主流浏览器正在将SameSite的默认值迁移到Lax,如果要指定cookie在同站、跨站请求都被发送,需要明确指定SameSite为None。

4.Cookie prefixes

  • __Host-:如果cookie名称具有此前缀,仅当它也用Secure属性标记,是从安全源发送的,不包含Domain属性,并将Path属性设置为/时,它才在Set-Cookieheader中接受。这些cookie可以被视为"domain-locked"。
  • __Secure-:如果cookie明白包含此前缀,则仅当它也用Secure属性标记,是从安全源发送的,它才在Set-Cookieheader中接受。此前缀限制弱于__Host-前缀。
  • 带有这些前缀的cookie,如果不符合其限制的会被浏览器拒绝。

最后

以上就是顺心季节为你收集整理的cookie的生命周期cookie的生命周期的全部内容,希望文章能够帮你解决cookie的生命周期cookie的生命周期所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部