CookieのSecure属性

  • URLをコピーしました!
目次

問題文

CookieにSecure属性を設定しなかったときと比較した,設定したときの動作として,適切なものはどれか。

ア Cookieに指定された有効期間を過ぎると,Cookieが無効化される。
イ JavaScriptによるCookieの読出しが禁止される。
ウ URL内のスキームがhttpsのときだけ,WebブラウザからCookieが送出される。
エ WebブラウザがアクセスするURL内のパスとCookieによって指定されたパスのプレフィックスが一致するとき,WebブラウザからCookieが送出される。

解説

解答

ア:有効期間を過ぎると無効化される

これは Cookieの有効期限(Expires/Max-Age属性) の説明です。

Secure属性とは関係ありません。

有効期限を過ぎれば自動的に無効になりますが、これはSecureを付けなくても同じです。

イ:JavaScriptによるCookieの読出しが禁止される

これは HttpOnly属性 の説明です。

HttpOnlyを付けることで、JavaScript(例えば document.cookie)からの読み出しを禁止し、クロスサイトスクリプティング(XSS)攻撃によるCookie窃取を防止できます。

Secure属性は送信経路に関する制御なので、ここでの説明は誤りです。

ウ:URL内のスキームがhttpsのときだけ送出される

これが正解です。

Secure属性を設定したCookieは、暗号化通信(HTTPS)でアクセスするときのみブラウザから送信されるようになります。

これにより、平文のHTTP通信でCookieが漏洩するリスクを防止できます。

特にセッションIDをCookieに保存する場合、Secure属性は必須のセキュリティ設定です。

エ:URLのパスとCookie指定のパスが一致するとき送出される

これは Path属性 の説明です。

Cookieにはドメインやパスの適用範囲を制御する属性があり、設定したパスのプレフィックスと一致する場合にのみ送信されます。

Secure属性ではなく、Path属性による挙動です。

Cookieに関する主要なセキュリティ属性

属性名内容主な目的具体例
SecureHTTPS通信のときのみCookieを送信平文HTTPでのCookie漏洩を防止セッションIDが盗聴されるのを防ぐ
HttpOnlyJavaScriptからdocument.cookieで読み取れないXSS攻撃によるCookie窃取を防止攻撃スクリプトからの不正取得を防ぐ
SameSiteクロスサイトリクエストでのCookie送信を制御(Strict / Lax / None)CSRF攻撃の防止フォーム送信や外部サイト経由の不正リクエスト対策
PathCookieを送信するURLパスの範囲を指定Cookieの利用範囲を制御/account/ に限定すれば他のページでは送信されない
DomainCookieを送信できるドメインを指定サブドメイン間でCookieを共有可能.example.com とすれば a.example.com でも利用可能
学びをSNSで共有しよう
  • URLをコピーしました!
目次