阅读 64

面试复盘之cookie属性

复盘

  • 今天某电商网站终面问到cookies的属性问题,有点不知所措,因为cookies自己应用蛮少的

  • 在这里进行cookies的复盘

  • cookies的作用

    • 会话状态管理(如用户登录、购物车、游戏分数或其他的游戏分数、其他需要记录的信息)

    • 个性化设置,程序主题色

    • 浏览器跟踪(如跟踪用户行为)

创建cookies

  • 服务端

    HTTP/1.0 200 OK
    Content-type: text/html
    Set-Cookie: yummy_cookie=choco
    Set-Cookie: tasty_cookie=strawberry复制代码
     response.setHeader('Set-Cookie', ['foo=bar', 'bar=baz']);复制代码
    • NodeJS设置方式

    • set-cookies:

  • 会话区的cookies是简单的cookies:

    • 随着浏览器的关闭而自动删除,仅在会话期有效,会话区的cookies不需要设置Expires(过期时间)或者Max-Age(有效期),有些浏览器提供了会话恢复功能,在会话关闭后也不会删除相关的cookies,cookies就相当于无限期延长

  • 持久化的cookie

    Set-Cookie: id=a3fWa; Expires=Wed, 21 Oct 2015 07:28:00 GMT;复制代码
    • 当Cookie的过期时间被设定时,设定的日期和时间只与客户端相关,而不是服务端。

    • 一般需要设置max-age(有效期)或者expire(过期时间)

  • 两个属性可以确保cookie被意外的参与者或者脚本访问

    • JavaScript Document.cookie API 无法访问带有 HttpOnly 属性的cookie

    • HttpOnly 类型的 Cookie 用于阻止了JavaScript 对其的访问性而能在一定程度上缓解此类攻击。

    • 标记为Secure属性的只应该通过HTTPS协议加密过的请求发送,发送给服务端,因此可以预防中间者的攻击,Secure也无法保证确实安全,cookie有固有的问题,例如可以从客户端硬盘读取

    • Secure

      从 Chrome 52 和 Firefox 52 开始,不安全的站点(`http:`)无法使用Cookie的 `Secure` 标记复制代码
    • HttpOnly

  • domain属性和Path属性决定了其作用域

    • domian指定了那些主机可以接受cookie,不指定,则默认为origin(不包含子域)

    • domain如果指定了域,那么其包含子域,因为指定domain的限制更少一些,

    • 当前大多数浏览器遵循 RFC 6265,设置 Domain 时 不需要加前导点。浏览器不遵循该规范,则需要加前导点,例如:Domain=.mozilla.org

  • Path属性

    • docus其实以下都可以匹配

    • /docus/html

    • /docus/secure

    • 决定了主机下的那些路径可以接受cookie(该url路径存在于URL),以字符%x2F作为路径分隔符

    • 例如以下规则

-SameSite

  • SameSite cookie允许服务器要求某个cookie在跨站时不会被发送

  • Strict浏览器只在访问相同站点发送cookie,从而可以阻止跨站请求伪造攻击

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

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

  • 通过 JavaScript 创建的 Cookie 不能包含 HttpOnly 标志。

文章分类


作者:KerryLee
链接:https://juejin.cn/post/7018141075860619294


文章分类
后端
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐