From e0b490998cf9fc9e3dda1899e4ade943eb5bbc5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9B=BE=E5=B3=B6=E9=A3=8E=E8=B5=B7=E6=99=82?= Date: Thu, 25 Sep 2025 03:22:13 +0800 Subject: [PATCH] Add files via upload --- Chapter3/3-1.md | 36 +++++++++++++++++++++++++++++++ Chapter3/3-2.md | 53 ++++++++++++++++++++++++++++++++++++++++++++++ Chapter3/3-3.md | 17 +++++++++++++++ Chapter3/README.md | 19 +++++++++++++++++ 4 files changed, 125 insertions(+) create mode 100644 Chapter3/3-1.md create mode 100644 Chapter3/3-2.md create mode 100644 Chapter3/3-3.md diff --git a/Chapter3/3-1.md b/Chapter3/3-1.md new file mode 100644 index 0000000..cae5704 --- /dev/null +++ b/Chapter3/3-1.md @@ -0,0 +1,36 @@ +### SameSite 防御 CSRF 的原理 + +**1. `SameSite=Strict`** + +这是最严格的模式。它规定:**只有当请求是同站发出的,浏览器才会发送 Cookie** + +- **同站请求**:比如你在 `bank.com` 内部点击一个链接,请求 `bank.com/profile`,浏览器会发送 Cookie +- **跨站请求**:当你在 `evil.com` 上,通过任何方式(表单提交、`` 标签、`` 链接)向 `bank.com` 发起请求时,浏览器**都不会**发送 Cookie + +**防御效果**:`Strict` 模式可以完全防御 CSRF 攻击,因为恶意请求无法携带会话 Cookie + +**缺点**:过于严格,可能会影响用户体验。例如,如果你从其他网站(如社交媒体或搜索引擎)点击一个链接跳转到 `bank.com`,因为这是跨站导航,`Strict` 模式下的 Cookie 也不会被发送,你可能需要重新登录 + +**2. `SameSite=Lax`** + +这是折中且更常用的模式。它在 `Strict` 的基础上做了一些放宽: + +- **同站请求**:会发送 Cookie +- **跨站导航**:当通过 `` 标签、`