Cookieのsecure属性|情報処理安全確保支援士 平成28年 秋期午前Ⅱ試験 問9

出典:平成28年秋期 午前Ⅱ 問9 分野:セキュリティ / セキュリティ実装技術
Cookieにsecure属性を付けなかったときと比較した,付けたときの動作の差はどれか。
  • ア:Cookieに指定された有効期間を過ぎると,Cookieが無効化される。
  • イ:JavaScriptによるCookieの読出しが禁止される。
  • ウ:URLのスキームがhttpsのページのときだけ,WebブラウザからCookieが送出される。
  • エ:WebブラウザがアクセスするURL内のパスとCookieによって指定されたパスのプレフィックスが一致するとき,WebブラウザからCookieが送出される。
解説

CookieのSecure属性は、CookieをHTTPSによる安全な通信でだけ送信するための属性です。Secure属性を付けると、HTTPによる通信ではそのCookieを送信せず、HTTPSによる通信のときに送信します。

例えば、ログイン後のセッションIDを保存したCookieにSecure属性を付けることで、暗号化されていないHTTP通信を通じてCookieが送信されることを防ぎ、盗聴されるリスクを低減できます。

CookieにはSecure属性以外にも、送信範囲や利用方法を制御する属性があります。DomainはCookieを送信するドメイン、PathはCookieを送信するURLのパス、ExpiresはCookieの有効期限を指定します。また、HttpOnlyはJavaScriptからCookieへアクセスできないようにし、SameSiteはサイトをまたがるリクエストの際にCookieを送信するかどうかを制御します。

したがって、ウが適切です。

❌他選択肢が誤りの理由
ア:Cookieに指定された有効期間を過ぎると,Cookieが無効化される。
⇒Expires属性などに関する説明です。Expiresを指定すると、設定された有効期限を過ぎたCookieは利用されなくなります。Secure属性の動作ではありません。
イ:JavaScriptによるCookieの読出しが禁止される。
⇒HttpOnly属性の説明です。HttpOnly属性を付けると、JavaScriptからCookieへアクセスできなくなり、XSSによるCookieの窃取対策などに役立ちます。
エ:WebブラウザがアクセスするURL内のパスとCookieによって指定されたパスのプレフィックスが一致するとき,WebブラウザからCookieが送出される。
⇒Path属性の説明です。Path属性は、そのCookieを送信するURLのパスの範囲を指定するために使用します。
TSUNAGARU-ADVICE

まず押さえたいこと

CookieのSecure属性は、そのCookieをHTTPS通信のときだけ送信するための属性です。HTTP通信では送信されなくなるため、通信経路上でCookieが盗聴されるリスクを減らせます。ポイントは、Secure属性 = HTTPS通信時だけCookieを送信と整理することです。

迷ったときの判断軸

Cookieの有効期間はExpiresやMax-Age、JavaScriptからの読出し制限はHttpOnly、送信対象となるURLパスの制御はPath属性に関係します。Cookie属性は、Secureは通信経路・HttpOnlyはJavaScript・Pathは送信範囲と役割ごとに分けると判断しやすくなります。

科目Bにつなげるために

科目Bでは、セッション管理・Cookie・HTTPS・XSS・セッションハイジャックなどと組み合わせて問われることがあります。Secure属性だけで全てのCookie攻撃を防げるわけではないため、Secure・HttpOnly・SameSiteなどを目的に応じて組み合わせる視点を持ちましょう。