Web技術の基礎
ブラウザのlocalStorageとCookieの違いとして、正しいものはどれか。
- AlocalStorageのデータはリクエストに自動では付かず、同じオリジンのページのJavaScriptから読み書きして使う
- BlocalStorageのデータも、Cookieと同じように、同じサイトへのリクエストのたびにヘッダに入れられ、自動でサーバへ送られる
- ClocalStorageにもHttpOnly属性を付けられるので、セッションIDを置いても、ページのスクリプトからは読み取れない
答えと解説を見る
正解:A. localStorageのデータはリクエストに自動では付かず、同じオリジンのページのJavaScriptから読み書きして使う
localStorageは、オリジンごとにキーと値の文字列を保存するブラウザの記憶場所で、有効期限を決める仕組みはなく、一般に消すまで残ります。サーバへは自動では送られないので、送りたいときはJavaScriptでリクエストに入れます。Cookieは1つあたり一般に約4 KBまでと小さく、リクエストのたびに自動で送られるのに対し、localStorageにはより大きなデータを置けます。ただし、ページのJavaScriptからはいつでも読めるので、XSSがあると中身を盗まれます。認証に使う値を置くときは、この危険を考える必要があります。
- A. 正しい。localStorageのデータは自動では送られず、同じオリジンのスクリプトから読み書きします。
- B. リクエストに自動で付けて送られるのはCookieです。localStorageのデータは自動では送られません。
- C. HttpOnly はCookieの属性です。localStorageの中身は、同じオリジンのスクリプトからいつでも読めます。