Cloudflare Docs
Support
Support
Visit Support on GitHub
Set theme to dark (⇧+D)

了解 SameSite Cookie 与 Cloudflare 的交互

了解 SameSite Cookie 的信息,以及它如何防止跨站点请求伪造(CSRF)。

​​ 本文内容


​​ 概述

Google Chrome 的 SameSite Cookie 改变了 Google Chrome 处理 SameSite 控件的方式。Google 强制执行 SameSite,以防止跟踪用户的营销 Cookie 和允许攻击者窃取或操纵您的 Cookie 的跨站点请求伪造(CSRF)。

SameSite Cookie 具有 3 种不同的模式:

  • Strict:Cookie 由第一方(所访问的域)创建。例如,在访问 Cloudflare.com 时 Cloudflare 会设置第一方Cookie。
  • Lax:Cookie 由域顶端(如 *.foo.com)创建。例如,如果有人(blog.naughty.com)热链接了图像(img.foo.com/bar.png),客户端不会将 Cookie 发送到 img.foo.com,因为它既不是第一方,也不是顶端上下文。
  • None:Cookie 与所有请求一起发送。

Cloudflare Cookie 的 SameSite 设置包括:

Cloudflare CookieSameSite 设置仅 HTTPS
__cfduidSameSite=Lax
__cf_bmSameSite=None; Secure
cf_clearanceSameSite=None; Secure
__cfruidSameSite=None; Secure
__cflbSameSite=Lax

在解决了 Cloudflare CAPTCHA 或 Javascript 质询(例如对于 Firewall RuleIP Access Rule),客户端浏览器中会设置一个 cf_clearance Cookie。cf_clearance Cookie 的默认寿命是 30 分钟,但可以通过Cloudflare Firewall 应用的 Settings 选项卡中的 Challenge Passage 进行配置。

Cloudflare 自 cf_clearance Cookie 起使用 SameSite=None,以便来自不同主机名的访问者请求不会遇到后续的质询或错误。使用 SameSite=None 时,必须与 Secure 标志一同设置。

使用 Secure 标志需要通过 HTTPS 连接发送 Cookie。如果您的网站上有任何部分使用 HTTP,cf_clearance Cookie 会默认为 SameSite=Lax,并可能会导致问题。

如果您的网站上有任何部分使用 HTTP,则 cf_clearance Cookie 默认为 SameSite =Lax,这可能会导致网站无法正常运作。要解决问题,请将您的网站流量迁移到 HTTPS。Cloudflare 提供了两个功能来协助您:


​​ 相关资源