首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >你不知道的cookie

你不知道的cookie

作者头像
wade
发布2022-12-02 20:24:53
2470
发布2022-12-02 20:24:53
举报
文章被收录于专栏:coding个人笔记coding个人笔记

提起cookie最基础的几个属性肯定是可以请求自动携带、大小、本地缓存、后端自动注入、携带cookie会引起跨域。而有几个不常用的却很少提及。

crossorigin

同源策略会引起跨域,而link、script、img、video、audio等几个标签不会引起跨域,而且,这些标签可以设置允许携带cookie的属性:

  • anonymous:它有一个默认值。它定义了一个 CORS 请求,该请求将在不传递凭证信息的情况下发送。
  • use-credentials:将发送带有凭据、cookie 和证书的 cross-origin 请求。

一般来说不用设置,不会携带,如果需要的话可以直接设置,就是没试过设置了允许携带是不是就会出现跨域了。

SameSite cookies

之前控制台经常看见这个属性,当时都没关注过,主要是应对跨站的问题。我们知道有个攻击叫做跨站请求伪造CSRF,设置这个就可以避免出现。

同站的定义是:eTLD+1相同即可。http://a.wade.com:80,wade.com就是eTLD+1。

比如下面的地址跟https://a.wade.com:80做比较:

  • https://b.wade.com:80,同站,二级域名不同
  • https://a.wade.com:80,同站,协议不同
  • https://a.wade.com:443,同站,端口不同
  • https://a.b.com:80,跨站,域不同

这就尴尬了,跨站请求伪造的条件就太容易形成了,所以chrome升级到51之后新增了SameSite属性,加强了CSRF攻击和用户追踪,有三个属性:

  • Strict:完全禁止第三方 Cookie,跨站点时,任何情况下都不会发送 Cookie。
  • Lax:允许部分第三方请求携带 Cookie。链接,预加载请求,GET 表单,Ajax、iframe、img都不允许携带
  • None:都可以携带,但是要设置Secure,只能是https协议下生效。

现在默认的SameSite是Lax,一些旧网站控制台会有警告也是因为新浏览器导致的:

A parser-blocking, cross site (i.e. different eTLD+1) script

A cookie associated with a cross-site resource at was set without the SameSite attribute.

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-11-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 coding个人笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • crossorigin
  • SameSite cookies
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档