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 使用。

相关推荐
Zhao-Jichao1 小时前
AI Prompting for Everyone 课程笔记 - 05 使用深度搜索 Using Deep Research
人工智能·笔记
云析赢指标公式网42 小时前
指标开发笔记|主图搭配双副图成套指标逻辑拆解
人工智能·笔记
dreams_dream2 小时前
微信开发者工具报错解决笔记:删除页面后仍报 ENOENT: no such file or directory
笔记
图灵-M3 小时前
【数据结构】静态 & 动态顺序表
c语言·数据结构·笔记
忘了ʷºᵇₐ4 小时前
Git学习笔记
笔记·git·学习
Zhao-Jichao4 小时前
AI Prompting for Everyone 课程笔记 - 04 联网搜索资源 Web Search Sources
人工智能·笔记
金色光环4 小时前
【DSP学习】C2000_PWM中断程序_笔记
笔记·单片机·学习
東隅已逝,桑榆非晚5 小时前
AVL数实现
c++·笔记·学习·算法
摇滚侠5 小时前
《大模型是怎样跑起来的(轻科技)》硬件篇 阅读笔记
人工智能·笔记·科技
职豚求职小程序6 小时前
百联集团校招在线测评~IQCAT行测+MAP性格
笔记