インフラ用語集へ戻る

セキュリティ・認証 / Web/認証

Set-Cookieとは

Set-Cookie header。サーバーがブラウザへCookie保存を指示するHTTPヘッダーです。

用語集内のカードを見る

詳細な図解

サーバーがCookie保存を指示する流れ
アプリ応答ログインや設定変更に応答
Set-Cookie属性Secure/HttpOnly/SameSiteを付与
ブラウザ保存Domain/Path/期限で保存
認証/次回送信条件一致時だけCookieを送る
  • 属性をヘッダー原文で確認
  • 複数Set-Cookieを分ける
  • 機密値をログへ出さない

この記事で学べること

Set-Cookieを、定義だけで終わらせず、現場で出てくる場面、確認材料、見落としやすい点、関連語とのつながりまで順に確認できます。

  1. Set-Cookieを読むときの前提
  2. 属性を原文で確認する
  3. 認証Cookieの属性を固める
  4. 送信範囲と値の扱いを見る
  5. 変更証跡と引き継ぎ

実務メモ

ヘッダー原文とブラウザ保存後の属性を両方確認する

どこで効くか

Set-Cookieはログイン、セッション、CSRFトークン、IdP戻り、決済戻り、設定保持で効きます。認証不具合やHTTPS化後のCookie送信不良で確認します。

残す証跡

証跡には対象URL、Set-Cookieヘッダー原文、Cookie名、Secure、HttpOnly、SameSite、Domain、Path、Expires/Max-Age、保存結果、次回送信有無を残します。

避けたい誤解

複数Set-Cookieを通常ヘッダーのように結合すると誤読します。SecureやHttpOnly不足、SameSite=NoneのSecure漏れ、広すぎるDomain、機密値のログ出力も見落としやすいです。

まず確認すること

  • Set-CookieをCookie単位で確認する
  • 認証Cookieの属性を確認する
  • ブラウザ保存後と次回送信を確認する

Set-Cookieを読むときの前提

Set-Cookieは、サーバーがブラウザへCookie保存を指示するHTTPレスポンスヘッダーです。ログイン、セッション、CSRFトークン、表示設定、外部IdP連携などで使われます。

実務では、Cookie名、値、Secure、HttpOnly、SameSite、Domain、Path、Expires、Max-Age、複数ヘッダー、HTTPS、CORSとの関係を確認します。

証跡には、対象URL、Set-Cookieヘッダー原文、Cookie名、属性、発行タイミング、認証状態、ブラウザ保存結果、次回リクエストでの送信有無を残します。

属性を原文で確認する

Set-Cookieは、同じレスポンスで複数回出ることがあります。カンマ区切りの通常ヘッダーのように扱うと、Expiresの日付や複数Cookieを誤読しやすくなります。

ブラウザ開発者ツール、プロキシ、サーバーログで見え方が違うことがあります。原文ヘッダーとブラウザ保存後の属性を両方確認します。

  • Set-CookieヘッダーをCookie単位で分ける。
  • Secure、HttpOnly、SameSiteを確認する。
  • ブラウザ保存後のDomain/Pathを見る。

認証Cookieの属性を固める

認証Cookieでは、Secure、HttpOnly、SameSite、Domain、Path、有効期限が重要です。HTTPS化していてもSecureがない、XSS対策が必要なのにHttpOnlyがない、といった設定は影響が大きくなります。

SameSite=Noneを使う場合はSecureが必要です。外部IdPや決済から戻るフローでは、SameSiteを強くしすぎるとログイン継続に失敗することがあります。

  • 認証CookieにSecureを付ける。
  • JavaScriptで読む必要がなければHttpOnlyを付ける。
  • SameSiteと外部連携を同時に確認する。

送信範囲と値の扱いを見る

DomainやPathを広げすぎると、意図しないサブドメインやパスへCookieが送られます。共有ドメインや古い検証環境がある場合は、送信範囲を絞ることが重要です。

Cookie値に個人情報、権限、長いトークン、機密情報を直接入れると、ブラウザ、プロキシ、ログ、問い合わせ資料から漏れるリスクがあります。必要最小限の識別子にします。

  • DomainとPathの範囲を確認する。
  • 期限が長すぎないか確認する。
  • 値に機密情報を入れない。

変更証跡と引き継ぎ

Set-Cookie対応では、Cookie名、用途、属性、発行元、送信範囲、保存期限、認証フロー、CORSやSameSiteへの影響を残します。ヘッダー値だけでなく、ブラウザが実際に保存した結果が重要です。

引き継ぎでは、アプリ担当、認証基盤担当、フロントエンド担当、関連語としてCookie、Secure、HttpOnly、SameSite、CORSを残すと確認しやすくなります。

  • ヘッダー原文と保存結果を両方残す。
  • ログイン前後の差分を確認する。
  • 属性変更時の業務影響を記録する。

関連語

同じ主要カテゴリの用語

セキュリティ・認証の学習順

同じ主要カテゴリの用語をまとめて確認できます。現在の用語を起点に、前後の用語へ進むと文脈を保ったまま読み進められます。

InfraEngKit内の関連機能