Set-Cookie Builder

Cookie / Set-Cookie の属性と整合性をブラウザ内で確認します。入力はサーバーへ送信しません。運用事故の一次切り分けに使えます。

 

状態

ブラウザ内で処理します。入力はサーバーへ送信しません。まずはここで一次切り分けしてください。

使い方

Cookie名/値と属性を入力して「生成」。Set-Cookie文字列をコピーできます。

注意(このツール)

  • SameSite=None の場合は Secure を推奨します。

このページについて

何をするツール?

Cookie名・値と各属性を入力して、Set-Cookie ヘッダー文字列を生成します。

SameSiteやSecureなどの条件を事故なく組み立てたいときに便利です。

Set-Cookieの基本

  • Set-Cookie はレスポンスヘッダーで、ブラウザに保存を指示します。
  • Domain/Path で送信範囲、Expires/Max-Age で期限を指定します。
  • SameSite=None を使う場合は Secure が必要になることが多いです。

使いどころ

  • ログインCookieの条件を整理したい
  • API/SPAでSameSite設定を調整したい
  • Domain/Path/期限の組み合わせを検討したい

主な属性

  • Domain / Path:送信範囲
  • Expires / Max-Age:期限(どちらか一方でも可)
  • Secure / HttpOnly:セキュリティ属性
  • SameSite:クロスサイト送信制御

構文(書き方)

Set-Cookie は「name=value; Attr1; Attr2=...」のようにセミコロン区切りで属性を並べます。name/value は必須で、属性は必要に応じて追加します。

  • Expires はUTC文字列(例: Wed, 21 Oct 2015 07:28:00 GMT)
  • Max-Age は秒数(整数)
  • Secure/HttpOnly はフラグ(値なし)

SameSiteの考え方(最短)

SameSite は「クロスサイトでCookieを送るか」を制御します。ログインや埋め込み、外部決済などで問題が起きやすいポイントです。

  • Lax:多くの一般用途の標準的な選択肢
  • Strict:より厳格(外部からの遷移で送られないことがある)
  • None:クロスサイト送信を許可(多くの環境でSecure必須)

Expires と Max-Age

Expires は絶対日時、Max-Age は現在からの秒数です。サーバー時刻のズレやタイムゾーンを気にせずに済むため、Max-Age を採用するケースも多いです。

  • 両方書く構成もあります(互換性や方針次第)。
  • 削除したい場合は Max-Age=0 / Expires を過去にする

セキュリティ観点(推奨の型)

セッションCookieなど機微なCookieは、Secure/HttpOnly を基本にし、必要に応じてSameSiteを調整します。

  • HTTPS前提なら Secure を付ける
  • JSから不要なら HttpOnly を付ける
  • クロスサイト用途が必要なときだけ SameSite=None を検討

運用フロー(おすすめ)

  • 目的を決める(セッション/設定/トラッキング等)
  • 属性を最小にして生成 → 必要に応じて追加
  • Set-Cookie を Cookie Inspect で検証
  • 送信側の確認は Request Headers Parser で行う

よくある落とし穴

  • SameSite=None に Secure を付け忘れる
  • Domain/Path が想定と合わず送信されない
  • Expires/Max-Age の指定ミスで即失効

プライバシー/計測観点

Cookieは認証だけでなく計測にも使われます。用途に応じて有効期限やSameSiteを設計し、不要な情報を入れないのが基本です。

このツールでできること

  • Set-Cookie の組み立て
  • 主要属性の一括指定
  • コピーしてそのまま利用

注意(運用)

  • ブラウザ実装差や既定値変更で挙動が変わる場合があります。
  • 同名Cookieの重複やPath/Domain差分は運用事故の原因になります。

参照仕様

  • RFC 6265(HTTP Cookies)
  • MDN: Set-Cookie

FAQ

Expires と Max-Age はどちらを使う?

どちらでも構いませんが、Max-Age の方が扱いやすい場合があります。

SameSite=None の条件は?

多くのブラウザで Secure が必須です。

Partitioned は何?

環境によっては分割Cookie(partitioned cookies)のための属性です。用途が明確な場合のみ付けるのがおすすめです。

参考リンク

  1. RFC 6265(HTTP Cookies)
  2. MDN: Set-Cookie
  3. MDN: Cookies

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

  1. 同名Cookie競合で不安定な時の診断手順 — 同名CookieのPath/Domain差分・上書き順・送信衝突を整理して不安定挙動を解消する
  2. Content-Type Inspect — Content-Type を解析してMIME/charsetを確認
  3. Request Headers Parser — リクエストヘッダーを構造化解析
  4. Response Headers Parser — レスポンスヘッダーを構造化解析
  5. Request/Response Diff — Request/Response ヘッダー差分を比較