LoginSignup
2
0

【Strict,Lax,Noneで何が違うの?】CookieのSameSite属性について

Last updated at Posted at 2023-12-20

はじめに

みなさんはSameSite属性についてご存知ですか?

2020年の2月にChromeがアップデートで初期値がNoneからLaxに変更されたり、
railsもconfig.load_defaultsのバージョン指定が6.1以降はnil(実質None)から
laxに変更されました。

他の一部の主要なブラウザ(Firehox)でも変更があり、重要な概念かと思うので
今回は備忘録も兼ねてまとめさせて頂きます。

SameSite属性とは?

Cookieの属性の一つであり、CSRFを防ぐためのものです。
簡単にいうと、Webブラウザがcookieの送信をいかに制御するか
指定することができます。

属性の説明は以下のとおりです。

名前 説明
Strict ブラウザーが同一サイトのリクエストに対してのみクッキーを送信することを意味する
Lax 画像やフレームを読み込むリクエストのようなクロスサイトリクエストではクッキーを送信しないが、ユーザーが外部サイトから元のサイトに移動するとき(例えば、リンクをたどるとき)には送信されることを意味する。
None ブラウザーがクロスサイトと同一サイトの両方のリクエストでクッキーを送信することを意味する。

https://developer.mozilla.org/ja/docs/Web/HTTP/Headers/Set-Cookie#samesitesamesite-value より内容は引用

簡単にいうと、Strictはどんな場合もCookieは付与されず、Noneの場合はどんな場合もCookieが付与されます。
Laxはaタグ等のリンクやGETリクエストの場合はCookieが付与されますが、画像の読み込みやformタグのPOSTリクエストの場合は付与されないといった挙動になります!

参考資料

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0