SameSite Cookie Simulator

「SameSite を設定したらログインが切れる」症状を、same-site/cross-site・遷移種別・メソッド条件で切り分けます。

 

状態

ブラウザ内で処理します。入力はサーバーへ送信しません。SameSite判定の一次切り分けに使えます。

使い方

Top-level URL と Request URL を入れ、SameSite / context / method / Secure を実際の条件に合わせて「シミュレート」。送信可否と理由を確認します。

注意(このツール)

  • 公開サフィックス判定は簡易近似です。厳密判定は実ブラウザで確認してください。
  • ブラウザの追跡防止(3rd-party cookie制限)はこの判定外です。

このページについて

何をするツール?

Request URL と Top-level URL、SameSite 値、Secure 条件を使って「送信される/されない」を判定します。

Lax の top-level navigation 条件や、None における Secure 必須条件を明示的に確認できます。

使いどころ

  • OAuth/OIDC 後にセッションCookieが戻らない
  • 埋め込みiframeや外部遷移でのみログインが外れる
  • SameSite変更の影響範囲を事前に確認したい

判定ポリシーの要点

  • Strict: same-site のみ送信
  • Lax: same-site + 一部の top-level navigation
  • None: cross-site 送信可。ただし Secure 必須

このツールでできること

  • same-site / cross-site の判定(schemeful)
  • SameSite + Secure 条件の送信可否シミュレーション
  • NG理由(メソッド/遷移種別/属性不足)を説明

切り分け手順(おすすめ)

  • 問題が起きるURLペア(top-level と request)を入力する
  • SameSite / Secure / context を実際の条件に合わせる
  • Set-Cookie Inspect / Cookie Domain/Path Matcher と合わせて原因を確定する

注意(運用)

  • 公開サフィックス判定は簡易近似です。厳密判定が必要な場合は実ブラウザ検証を優先してください。
  • ブラウザの追跡防止機能(3rd-party cookie制限)は別途影響します。

参照仕様

  • RFC 6265(HTTP Cookies)
  • MDN: SameSite

FAQ

SameSite を未指定にするとどうなりますか?

現代ブラウザでは実質 Lax 相当で扱われるケースが多いです。明示指定を推奨します。

SameSite=None だけ付ければ十分ですか?

不十分です。Secure が必須で、さらにブラウザの3rd-party制限も考慮が必要です。

参考リンク

  1. RFC 6265(HTTP Cookies)
  2. MDN: SameSite

site_map ルールに基づいて、次に確認すべきページを表示しています。

  1. Set-Cookie Inspect — Set-Cookie 属性を解析して配布方針を確認
  2. Cookie Domain/Path Matcher — Domain/Path/Secure 条件でCookie送信可否を判定
  3. Set-Cookie Conflict Checker — 同名Cookie競合と上書きリスクを検出
  4. Cookie Security Audit — Secure/HttpOnly/SameSite を監査
  5. OAuth戻りでログインが維持されない時の診断手順 — IdP戻りで起きる Cookie 不達を SameSite・Secure・Path/Domain・競合で順に切り分ける
  6. Set-Cookie が保存されない時の診断手順 — Domain/Path/Secure/SameSite を順に確認して Cookie 非保持の原因を切り分ける
  7. Cookie障害の運用チェックリスト — 保存失敗・OAuth戻り失敗・同名競合を一本化し、トリアージから恒久対策まで運用手順を標準化する
  8. Cookie系ツールの使い分け — Set-Cookie / Domain-Path / SameSite / 競合 / サイズを症状別に切り分ける

レスポンスヘッダー診断

生ヘッダーから Retry-After / Server-Timing / Link / Content-Type を段階的に解析

Example

Top-level: https://app.example.com
Request: https://api.example.com/session
SameSite=Lax, context=subresource