
- └─SameSite属性とは?
- └─SameSiteの3つの設定値
- └─Strict
- └─2. Lax
- └─3. None
- └─まとめ
- └─以下の表は SameSite 属性の設定例です。
- └─個人メモ
Web開発においてセキュリティやプライバシー保護の観点から重要な「CookieのSameSite属性」について、初心者でもわかるように解説します。
SameSite
は、ブラウザが クロスサイトリクエスト(他のサイトから送られてくるリクエスト)に対して Cookie を送信するかどうかを制御するための属性です。
-
同一サイトのリクエストにのみ Cookie を送信
-
外部リンクなどからアクセスされた場合、Cookieは送られません
-
✅ 利点
- セキュリティが最も高い
-
❌ 欠点
- 外部からのアクセスでログインセッションが失われるなど、使い勝手が悪い場合あり
-
GETリクエスト であれば、クロスサイトでも Cookie を送信
-
POST
などの状態変更を伴うリクエストでは送られない -
✅ 利点
- ある程度の利便性とセキュリティのバランスが取れる
-
❌ 欠点
- フォーム送信後のリダイレクトなどではCookieが送られない場合がある
-
すべてのクロスサイトリクエストに対してCookieを送信
-
SameSite=None
を使う場合は Secure属性も必須 -
✅ 利点
-
iframe や外部サービスとの連携が可能
-
❌ 欠点
-
セキュリティリスク(CSRFなど)に注意が必要
設定値 | クロスサイトGET | クロスサイトPOST | Secure必須 | 用途例 |
---|---|---|---|---|
Strict | ❌ | ❌ | 不要 | 高セキュリティなアプリ |
Lax | ✅ | ❌ | 不要 | 一般的なWebサイト |
None | ✅ | ✅ | ✅ | 外部連携サービスなど |
- 外部サービスとの連携がない場合は
Lax
を基本にするのが無難 None
を使う場合は必ず HTTPS 通信(Secure属性)にする- CSRF対策と併用することが重要