CloudflareとSameSite Cookieの相互作用について理解する
CloudflareとSameSite Cookieの相互作用について理解する
SameSite Cookieとそれがクロスサイトリクエストフォージェリ(CSRF)を防止する方法について説明します。
概要
Google ChromeのSameSite Cookieは、Google ChromeによるSameSiteコントロールの処理方法を変えます。Googleは、攻撃者がCookieを盗んだり操作したりできるようにする、ユーザーを追跡するマーケティングCookieとクロスサイトリクエストフォージェリ(CSRF)をSameSiteが防止するよう強制します。
SameSite Cookieには3つの異なるモードがあります:
- Strict:Cookieはファーストパーティ(訪問先ドメイン)によって作成されます。たとえば、Cloudflare.comを訪問しているときにCloudflareによってファーストパーティCookieが設定されます。
- Lax:CookieはApexドメイン(_*.foo.com_など)に対してのみ送信されます。 たとえば、誰か(blog.naughty.com)が 画像(img.foo.com/bar.png)にホットリンクした場合、クライアントは_img.foo.com_にCookieを送信しません。これは、ファーストパーティでもApexコンテンツでもないからです。
- None:Cookieはすべてのリクエストと一緒に送信されます。
Cloudflare CookieのSameSite設定値には以下のものが含まれます:
Cloudflare Cookie | SameSite Setting | HTTPS Only |
---|---|---|
__cfduid | SameSite=Lax | いいえ |
__cf_bm | SameSite=None; Secure | Yes |
cf_clearance | SameSite=None; Secure | Yes |
__cfruid | SameSite=None; Secure | Yes |
__cflb | SameSite=Lax | いいえ |
SameSite Cookieとcf_clearance Cookieに関する既知の問題
ファイアウォールルールや IPアクセスルールなどに対して Cloudflare CAPTCHAまたはJavaScriptのチャレンジが解決されると、クライアントブラウザーにcf_clearance Cookieが設定されます。cf_clearance Cookieのデフォルトの寿命は30分ですが、Cloudflare Firewallアプリの **「設定(Settings)」**タブにある Challenge Passageを介して設定されます。
さまざまなホスト名からの訪問者のリクエストが後続のチャレンジやエラーに遭遇しないように、cf_clearance Cookie依頼はCloudflareはSameSite=_None_を使用しています。SameSite=_None_を使用する場合、_Secure_フラグと一緒に設定しなければなりません。
_Secure_フラグを使用するには、HTTPS接続を介してCookieを送信する必要があります。Webサイトの一部でHTTPを使用している場合、cf_clearance CookieはデフォルトでSameSite=_Lax_に設定されるため、Webサイトの問題が発生する可能性があります。
Webサイトの一部でHTTPを使用している場合、cf_clearance CookieはデフォルトでSameSite=_Lax_に設定されるため、Webサイトが正しく機能しない可能性があります。問題を解決するには、WebサイトのトラフィックをHTTPSに移動します。 Cloudflareは、以下の2つの機能を提供して支援します: