Cookie / Set-Cookie 解析
開発ツール
読み込み中
ツールを読み込んでいます
ツールのコードは開いたときにのみ読み込まれます。
このツールの処理はすべてブラウザー内で行われ、入力内容はサーバーへ送信されません。
このツールについて
Cookie リクエストモードか Set-Cookie レスポンスモードを選んでから、記録したテキストを貼り付けます。重複する項目は順序を保ち、Expires の日付内のカンマは分割せず、構文エラーは行と列で示します。結果と JSON 出力では Cookie の値と属性値を既定でマスクしますが、入力欄の元データは表示されたままです。生の値の表示や出力には明示的な選択が必要で、認証情報が露出する可能性があります。処理はこのページ内で完結し、通信、ブラウザーの Cookie へのアクセス、入力履歴の保存、サーバー側のセッション検証は行いません。
主な用途
- コピーした Cookie リクエストの重複名を確認し、単純な辞書への変換で項目が失われるのを防ぐ。
- Set-Cookie の各行、有効期限の指示、独自属性を調べ、ブラウザーや送信元の状況が不明であることを区別する。
- 値をマスクした構造化デバッグレポートを作り、共有前に残った名前やメタデータを確認する。
使い方
- 1.セミコロン区切りの name=value ペアには Cookie リクエストモード、1 行に 1 つの Cookie と属性を記す形式には Set-Cookie レスポンスモードを選びます。対応するヘッダーだけを貼り付け、Set-Cookie の複数行は結合しないでください。
- 2.解析を実行し、表示された行と列のエラーを直します。保持された項目、属性、条件付きの確認点を読みます。貼り付けたテキストだけでは、元の送信元、通信方式、受信時刻、ブラウザーの方針は確定しません。
- 3.JSON のコピーやダウンロードでは値のマスクを維持し、表示される名前やメタデータも確認します。生の値は必要な場合だけ明示的に選んでください。画面、クリップボード、保存ファイルに有効な認証情報が含まれ得ます。
架空の Cookie の例
重複するリクエスト名と単純な引用符付きの値
Cookie: session=demo-first; theme="dark" Cookie: session=demo-second
Cookie リクエストモード 2 行に 3 つの Cookie ペアを元の順序で保持 名前:session、theme、session Cookie 値:既定でマスク
session の両方の項目を保持し、採用される値を勝手に選びません。引用符付きの dark は許可された Cookie 文字だけで構成されるため有効です。引用符を付けてもカンマ、セミコロン、バックスラッシュ、空白を値に含めることはできません。
個別のレスポンス Cookie と Expires のカンマ
Set-Cookie: session=demo-session; Expires=Mon, 21 Oct 2030 07:28:00 GMT; Domain=example.com; Path=/; Secure; HttpOnly Set-Cookie: theme=dark; Path=/; SameSite=Lax
Set-Cookie レスポンスモード 独立した 2 つの Cookie:session、theme 最初の Cookie の属性:Expires、Domain、Path、Secure、HttpOnly Cookie 値と属性値:既定でマスク
Expires の日付内のカンマは最初の Cookie の属性に保持します。Domain と Path は宣言を解析した結果であり、不明な送信元 URL に適用される証拠ではありません。Secure と HttpOnly は値を持たないフラグ属性です。
後の Expires 日付より Max-Age を優先
Set-Cookie: session=demo-session; Expires=Mon, 21 Oct 2030 07:28:00 GMT; Max-Age=0; Path=/; Secure; HttpOnly
Set-Cookie レスポンスモード Max-Age と Expires の両方を持つ Cookie が 1 つ 適用可能な Max-Age が優先 保存済み Cookie とログイン・セッションの有効性:不明
この架空の Max-Age=0 は、Expires が後の日付でも即時の期限切れを指示します。ブラウザーが応答を受け取ったか、対応する保存済み Cookie を削除したか、サーバー側のセッションが終了したかは証明しません。
SameSite の組み合わせと未知の属性
Set-Cookie: partner=demo-partner; SameSite=None; X-Trace=demo-internal
Set-Cookie レスポンスモード SameSite と X-Trace 属性を持つ Cookie が 1 つ SameSite/Secure の組み合わせを要確認:Secure なし 未知の属性を保持し、値は既定でマスク
対応ブラウザーでは SameSite=None に Secure が必要です。X-Trace は未知の属性として確認用に保持し、既定のレポートでは値をマスクします。この独自属性からブラウザーの動作は推定しません。
Cookie 解析でよくある間違い
- モードを間違えたり HTTP レスポンス全体を貼り付けたりする:選択したモードに合う Cookie または Set-Cookie の入力だけを使ってください。
- 複数の Set-Cookie フィールドをカンマで結合する:1 行に 1 つの Cookie を置き、Expires の日付内のカンマはその日付の一部として保持します。
- 引用符で任意の文字をエスケープできると思う:引用符付きの Cookie 値でも空白、カンマ、セミコロン、バックスラッシュ、制御文字は使えません。
- 重複名を単純な辞書として扱う:最後の値だけを黙って残さず、それぞれの出現箇所を確認します。
- 有効期限や安全性に関する属性をログインの有効性、Cookie の受け入れ、アプリの安全性の証拠とみなす:サーバー、送信元、ブラウザーの状態は不明です。
- 生のレポートを共有したり、マスクですべてが隠れると思ったりする:出力モードと、残る名前やメタデータを確認してください。
制限と注意事項
- 処理上限のあるテキスト検査ツールであり、ブラウザーの Cookie 実装を完全に再現するものではありません。表示された容量、行数、項目数の上限を超える場合は入力を減らしてください。構文エラー時に部分結果を成功として扱うことはありません。
- Cookie と Set-Cookie は文法が異なります。Cookie の値を二重引用符で囲むことはできますが、囲んでも空白、制御文字、非 ASCII 文字、カンマ、セミコロン、バックスラッシュは値に使えません。そのようなデータは Cookie の作成時に符号化してください。入力を自動修復する機能はありません。
- Set-Cookie は 1 行につき 1 つの Cookie です。Expires の日付内のカンマは保持し、Cookie の区切りとして使いません。重複名、重複属性、未知の属性を確認できますが、記述があるだけでブラウザーによる受け入れや適用が証明されるわけではありません。
- リクエスト URL、送信元、通信方式、実際のブラウザー方針は不明です。ドメインやパスへの適用、公開サフィックスの可否、HTTPS、Cookie の保存、クロスサイト送信、ログインやセッションの有効性は検証しません。有効期限の説明は指示の解釈であり、セッションが使える証拠ではありません。
- 既定でマスクするのは結果と出力の Cookie 値および属性値です。元の入力や、すべての識別情報を隠すわけではありません。名前、件数、位置にも機密情報が残り得ます。生の値の表示・出力は秘密を露出させる可能性があり、クリップボードと保存ファイルはこのページの管理外です。
よくある質問
なぜリクエストとレスポンスのモードを分けるのですか?
Cookie はリクエストの name=value ペアを送り、最初に設定した属性は含みません。Set-Cookie はレスポンス側の 1 つの Cookie と後続の属性を定義します。Path、Secure、SameSite をリクエストの属性とみなすと存在しない情報を補ってしまい、Set-Cookie の行を結合すると Expires の日付も壊れかねません。
Max-Age と Expires はどちらが優先されますか?
適用可能で有効な Max-Age が Expires より優先されます。Max-Age は受信からの秒数を表し、ゼロや負の値は即時の期限切れを指示します。貼り付けた記録ではブラウザーの受信時刻や実際の保存内容は分かりません。どちらの指示も、サーバーが今もセッションを受け付ける証拠にはなりません。
SameSite=None と Secure があれば必ずクロスサイトで送信されますか?
いいえ。対応ブラウザーでは SameSite=None に Secure が必要ですが、送信元、リクエストの状況、ブラウザーの対応やプライバシー方針も影響します。Secure は通信方式を、HttpOnly はスクリプトからのアクセスを制限します。どちらも総合的な安全性の判定ではなく、このツールはサイトをテストしません。
既定の JSON 出力はそのまま共有しても安全ですか?
既定では Cookie 値と属性値をマスクし、未知の属性値も対象にします。共有前に Cookie 名や残ったメタデータを確認してください。マスキングは匿名性の保証ではありません。生の値を明示的に選ぶと、セッションの認証情報などの私的なデータが露出し得ます。
- RFC 6265 · Set-Cookie の構文と有効期限の優先順位
- RFC 6265 · Cookie リクエストの意味
- MDN · Cookie リクエストヘッダー
- MDN · Set-Cookie の属性とブラウザーの注意点