zoukankan      html  css  js  c++  java
  • cookie的生命周期、访问限制、作用域、prefixes

    cookie的生命周期

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

    • 会话期cookie是最简单的cookie:浏览器关闭后会被自动删除。会话期cookie不需要指定过期时间(Expires)或者有效期(Max-Age)。需要注意的是,有些浏览器提供了会话恢复功能,这种情况即使关闭了浏览器,会话期cookie也会被保留下来,这会导致cookie的生命周期无限期延长
    • 持久性cookie的生命周期取决于过期时间(Expires)或者有效期(Max-Age)指定的一段时间。
      • 当Cookie的过期时间被设定时,设定的日期和时间只与客户端相关,而不是服务端。

    限制访问Cookie

    • Secure:标记为Secure的cookie通过被HTTPS协议加密过的请求发送给服务端。可以预防man-in-the-middle攻击。
      • 从Chrome52和firefox 52开始,非Https的站点无法使用Cookie的Secure标记。
    • HttpOnly:JavaScript Document.cookie API无法访问带有HttpOnly属性的cookie,此类cookie仅作用于服务器。此属性有助于缓解跨站点脚本(XSS)攻击。

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

    参考:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Cookies

    关联cookie知识点:Cookie的HttpOnly、secure、domain属性

  • 相关阅读:
    《Linux/Unix设计思想》随笔 ——Linux/Unix哲学概述
    C99 inline关键字
    关于C++内存对齐
    HLSL中constant variables的packing规则
    全局照明算法基础——从辐射亮度到渲染方程
    透视投影矩阵推导
    基于光线追踪的渲染中景深(Depth of field)效果的实现
    直线的光栅化算法
    透视投影后的线性插值校正
    linux内核编译与开发
  • 原文地址:https://www.cnblogs.com/amyzhu/p/14044255.html
Copyright © 2011-2022 走看看