Web技術の基礎
Set-Cookie: sid=8f3a2c9d; Path=/; Secure; HttpOnly; SameSite=Lax上のヘッダで設定されたCookieについての説明として、正しいものはどれか。
- ASecure属性があるので、Cookieの値はブラウザの中で暗号化して保存され、ほかのアプリからは読めない
- BHttpOnly属性があるので、ページのJavaScriptからはこのCookieを読み取れない
- CSameSite=Lax なので、同じサイトの中のページから送るリクエストにも、このCookieは付けられない
答えと解説を見る
正解:B. HttpOnly属性があるので、ページのJavaScriptからはこのCookieを読み取れない
Secure属性を付けたCookieは、HTTPSの通信のときだけ送られます。HttpOnly属性を付けると、ページのJavaScriptから document.cookie などで読み取れなくなるので、XSSでセッションIDを盗まれる被害を減らせます。SameSite属性は、ほかのサイトから始まったリクエストにCookieを付けるかを決めるもので、Laxでは、ほかのサイトのリンクからページを移るときのGETには付けますが、ほかのサイトからのフォームのPOSTや画像の読み込みには付けません。Expires や Max-Age で有効期限を付けないCookieは、一般にブラウザを閉じると消えるセッションCookieになります。
- A. Secure は、HTTPSの通信のときだけCookieを送らせる属性で、保存する値を暗号化するものではありません。
- B. 正しい。HttpOnly のCookieはスクリプトから読めないので、XSSによる盗難の被害を減らせます。
- C. SameSite は、ほかのサイトから始まったリクエストに付けるかを決める属性で、同じサイトの中のリクエストには付けられます。