SameSite Cookie 可以限制 Cookie 在跨站请求中的发送,在服务端进行设置

SameSite 是 Cookie 的一个属性,用于控制 Cookie 是否在跨站请求中被发送,从而有效防御 CSRF 攻击。

属性值

行为安全性
Strict仅同站请求发送最高
Lax仅导航安全请求发送(GET 链接、预加载)中等
None允许跨站发送无保护

对比

Strict(严格)

Set-Cookie: session=abc; SameSite=Strict
  • Cookie 只在同站请求中发送
  • 用户体验差,跨站导航会被拦截
  • 适合安全要求高的场景(如银行操作)

Lax(宽松)

Set-Cookie: session=abc; SameSite=Lax
  • 允许导航安全请求(GET 链接、预加载)
  • 阻止 POST 表单跨站请求
  • 推荐默认值,平衡安全与体验

None(无限制)

Set-Cookie: session=abc; SameSite=None; Secure
  • 允许跨站请求发送 Cookie
  • 必须配合 Secure(仅 HTTPS)
  • 用于需要跨站服务的场景

CSRF 防御效果

  • Lax 模式:阻止通过 POST 表单的 CSRF 攻击
  • Strict 模式:完全阻止跨站 Cookie 发送
  • 攻击者的恶意页面无法让浏览器发送目标网站的 Cookie