見えるセキュリティ
Cookie属性
COOKIE ATTRIBUTES
この概念とは?
Cookie属性とは、Browserに保存されるCookieについて、どのような条件で利用・送信するかを指定するための設定です。属性を使うことで、Browser上のスクリプトからCookieの値へ直接アクセスできるかを制御したり、安全な通信でのみ送信したり、cross-siteの状況や特定のDomain・Pathに対してCookieを送る範囲を指定したりできます。この教材では、代表的なHttpOnly、Secure、SameSite、Domain、Pathに絞って扱います。CookieにはExpiresやMax-Ageなど、ほかの属性もあります。
この教材で扱う基本形では、ServerがSet-CookieでCookieと属性を指定し、Browserがその属性に従ってCookieを扱います。Cookie属性はCookieそのものを暗号化する仕組みではなく、Browserは属性に従って、non-HTTP APIへCookieを公開するか、HTTPリクエストへCookieを含めるかなどを判断します。
- THEME
- secure-dev
- KIND
- mechanism
- REVIEW
- self-reviewed ·
1. BrowserがCookieを保存する
ServerはBrowserへ2つのCookieを設定します。ひとつはHttpOnlyを付けていないCookie、もうひとつはHttpOnlyを付けたSession Cookieです。BrowserはそれぞれのCookieと属性を保存します。
技術的な詳細を見る
BrowserはCookieの値だけでなく、そのCookieに設定された属性や適用範囲も管理します。このLensではHttpOnlyによる違いへ集中するため、DomainやPathなど他の条件は満たしているものとして扱います。
STEP 1 / 3: BrowserがCookieを保存する
この概念の要点
要点
ServerはSet-Cookieで属性を指定し、Browserが適用する
この教材で扱う基本形では、ServerがSet-CookieでCookieと属性を指定します。その後、Browserが保存した属性を確認し、Cookieをスクリプトへ公開するか、HTTPリクエストへ含めるかなどを判断します。
要点
HttpOnlyはCookieを暗号化する属性ではない
HttpOnlyが付いたCookieはBrowser内には保存されたままですが、non-HTTP APIからの取得対象から除外されます。一方で、他の送信条件を満たせばHTTPリクエストには付加されます。
理解確認
参考資料
- 参考資料IETF Internet-Draft: Cookies: HTTP State Management Mechanism
draft-ietf-httpbis-rfc6265bis-22SameSiteやCookie属性を含む次期Cookie仕様(RFC Editor Queueで最終レビュー中)
- OWASPOWASP Session Management Cheat Sheet
Session Cookie属性の実務的な設定指針