Cookie

Web サーバーがブラウザに保存を指示し、リクエスト間で状態を維持する仕組み

Webセキュリティ

Cookie は、Web サーバーがブラウザに保存を指示し、以降のリクエストでブラウザが自動送信する小さなデータ片 (最大 4KB) である。HTTP はステートレスなため、Cookie でセッションを維持する。

属性 説明
HttpOnly JS からアクセス不可 (XSS 対策)
Secure HTTPS でのみ送信
SameSite クロスサイトでの送信を制御
Max-Age 有効期限 (秒)
Path Cookie が送信されるパス
Domain Cookie が送信されるドメイン
Set-Cookie: session=abc123; HttpOnly; Secure; SameSite=Strict; Max-Age=86400; Path=/
観点 Cookie localStorage JWT (Bearer)
送信 自動 手動 (JS) 手動 (JS)
XSS 耐性 HttpOnly で保護 ❌ 脆弱 ❌ 脆弱
CSRF 耐性 SameSite で保護
サイズ 4KB 5MB -
サーバーレス - ✅ 最適

SameSite の値

クロスサイト送信 用途
Strict 銀行、管理画面
Lax GET のみ 一般的な Web アプリ (デフォルト)
None ✅ (Secure 必須) クロスサイト API

サーバーレスでの推奨

サーバーレス API では Cookie よりも JWT (Bearer トークン) が推奨。Cookie はステートフルなセッション管理が必要だが、JWT はステートレスで Lambda と相性が良い。

Cookie の関連書籍も参考になる。

関連用語