cookie的samesite机制

站点和源站的区别在于它们的范围;站点包含多个域名,而源站只包含一个域名。

|---------------------------|--------------------------------|-------------|---------|
| 请求来自 | 请求 | 同一地点? | 同源? |
| https://example.com | https://example.com | 是的 | 是的 |
| https://app.example.com | https://intranet.example.com | 是的 | 否:域名不匹配 |
| https://example.com | https://example.com:8080 | 是的 | 否:端口不匹配 |
| https://example.com | https://example.co.uk | 否:eTLD 不匹配。 | 否:域名不匹配 |
| https://example.com | http://example.com | 否:方案不匹配 | 否:方案不匹配 |

如果发出 cookie 的网站没有明确设置SameSite属性,Chrome 默认会自动Lax应用限制。这意味着 cookie 只会在符合特定条件的跨站请求中发送,即使开发者从未配置过此行为。由于这是一个拟议的新标准,我们预计其他主流浏览器未来也会采用这种行为。

SameSite你可以把它理解成:

浏览器给 Cookie 加的一道"跨网站使用限制"。

比如你登录:

复制代码
bank.example

浏览器拿到:

复制代码
Set-Cookie: session=ABC123; SameSite=Lax

现在你打开另一个网站:

复制代码
evil.example

evil.example 想让你的浏览器请求:

复制代码
https://bank.example/my-account/change-email

这时候就产生了:

复制代码
evil.example
       ↓
bank.example

这是一个跨站请求

浏览器就会问:

"bank.example 的 session Cookie 是 SameSite=Lax,我现在这个请求属于什么类型?我要不要带 Cookie?"

这就是 SameSite 发挥作用的地方。

SameSite 有三个主要级别

Strict 最严格,Lax 放行部分安全的跨站 GET,None 基本不限制跨站发送。

SameSite 跨站请求是否带 Cookie 典型特点
Strict ❌ 基本不带 最严格
Lax ⚠️ 部分情况带 跨站 GET 顶级导航通常可以带
None ✅ 可以带 允许跨站使用,但必须 Secure

1. SameSite=Strict

复制代码
Set-Cookie: session=abc; SameSite=Strict

可以理解成:

复制代码
同站请求 → Cookie ✅
跨站请求 → Cookie ❌

即使用户从其他网站点击链接进入目标网站,也不会在这个跨站导航请求中带上这个 Cookie。


2. SameSite=Lax

复制代码
Set-Cookie: session=abc; SameSite=Lax

这是你刚才那个 CSRF Lab 的关键

大致记:

复制代码
跨站 POST → Cookie ❌
跨站 fetch → Cookie ❌
跨站 GET 顶级导航 → Cookie ✅

例如:

复制代码
location = "https://victim.com/account"

这是顶级导航,因此浏览器可以带上 victim.com 的 Lax Cookie。

所以你那个 Lab 才能利用:

复制代码
GET
+
顶级导航
+
SameSite=Lax

拿到登录状态。


3. SameSite=None

复制代码
Set-Cookie: session=abc; SameSite=None; Secure

意思基本是:

复制代码
跨站请求 → 允许发送 Cookie ✅

但是现代浏览器要求:

复制代码
SameSite=None
        +
Secure

也就是通常必须通过 HTTPS 使用。

相关推荐
那个松鼠很眼熟w1 小时前
填充word文档【Apache POI】
笔记
从零开始的嵌入式之旅1 小时前
day46
linux·arm开发·笔记·嵌入式硬件
sunoo-2291 小时前
【ARM嵌入式学习笔记Day5】一文打通GPIO中断全链路:从硬件引脚→GIC→汇编入口→C语言处理
arm开发·笔记·学习·中断·gic·裸机开发
loopne2 小时前
AI网文写作全景调研(十):合规篇——检测、平台政策、版权法律
经验分享·笔记·ai写作·智能写作
孙严Pay2 小时前
代付 VS 纯代付
笔记·科技·计算机网络·其他·微信
一只旭宝2 小时前
面试预备:Linux指令专题
linux·笔记
Hotchip_MEMS2 小时前
平板MEMS麦克风阵列如何赋能远程会议与远场拾音
人工智能·笔记·物联网·电脑·制造
東隅已逝,桑榆非晚2 小时前
List(类函数学习)
c++·笔记·学习
江屿风3 小时前
【Linux系统】【Linux 进程程序替换机制解析及自定义 Shell 核心逻辑实现 】流食般投喂
linux·运维·服务器·开发语言·笔记