SameSite cookie
// a.github.io 和 b.github.io 为什么是跨站?因为 com 是顶级域名 github.io 是有效顶级域名,同站跨站的判断根据的是有效顶级域名
// 某些情况下 cookie 可以用来验证用户。
Chrome v80 默认为 Lax
Chrome ship 了对 SameSite cookie 的支持,很好理解的东西,就是假如你的 Set-Cookie 响应头是这样的 Set-Cookie: name=value; Path=/; Domain=.taobao.com; SameSite=Strict 那么在 tmall.com 站点下发起的对 taobao.com 的请求就不会带上 name 这个 cookie,可以有效防止跨站攻击(CSRF,url 操作数据本身就是不可取,CORS 解决),既不发送第三方 cookie(即在第三方不发送)。
// 影响:从外链打开页面可能出现没有登陆的情况
还有一个 Lax 值,Lax 允许 Safe 的 HTTP method 和 安全的请求方式(比如通过对 的点击,对
浏览器禁用第三方cookie(作用跟他完全不一样)区别:
- 禁止读写
- 用户主动开启
- 安全的请求方式不会被当做第三方cookie
使用 Public Suffix List 区别第三方
// Storage Access API 可以让第三方像第一方一样访问 cookie,localStorage…
// 默认禁用了第三方访问自己域下的资源?