Cookie

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

Webセキュリティ
Cookie」の技術書を見る (7 冊) →

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

Cookie の属性を以下にまとめる。

属性説明
HttpOnlyJS からアクセス不可 (XSS 対策)
SecureHTTPS でのみ送信
SameSiteクロスサイトでの送信を制御
Max-Age有効期限 (秒)
PathCookie が送信されるパス
DomainCookie が送信されるドメイン

Cookie の設定を図で示す。

Set-Cookie: session=abc123; HttpOnly; Secure; SameSite=Strict; Max-Age=86400; Path=/

Cookie と localStorage vs JWT の違いを以下にまとめる。

観点CookielocalStorageJWT (Bearer)
送信自動手動 (JS)手動 (JS)
XSS 耐性HttpOnly で保護❌ 脆弱❌ 脆弱
CSRF 耐性SameSite で保護
サイズ4KB5MB-
サーバーレス-✅ 最適

SameSite の値

SameSite の値を以下にまとめる。

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

サーバーレスでの推奨

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

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

この記事は役に立ちましたか?

関連用語

関連する記事