コンテンツへスキップ
uencoder

Cookie

Cookie とは、サーバーが設定しブラウザが保存するキーバリューペアであり、同一オリジンへのリクエストに自動的に付送されてセッションと状態の管理に使われる。

目的

ステートレスな HTTP の上でクライアント側の状態を維持し、セッションとパーソナライズを可能にする。

メカニズム

サーバーは Set-Cookie ヘッダーで Cookie を設定し、ブラウザはそれを保存して、以後の同一オリジンへのリクエストで Cookie ヘッダーとして返す。属性には、スコープの Domain/Path、有効期限の Max-Age/Expires、HTTPS 限定の Secure、JavaScript のアクセスを防ぐ HttpOnly、サイト間制限の SameSite がある。

ユースケース

  • セッション ID とログイン状態
  • ショッピングカートと設定
  • CSRF トークンの保存
  • ユーザーのトラッキング

例

  • 入力
    Set-Cookie: sid=abc; HttpOnly; Secure
    Output
    A hardened session cookie

    Blocking XSS reads

よくあるエラー

Omitting HttpOnly lets XSS steal the cookie
Set HttpOnly, Secure, and SameSite on session cookies

関連用語

References