要点の一問一答(サンプル・オリジナル)
Cookie の属性とセッションID
セッションIDを入れた Cookie が、どの経路で他人に渡りうるか、どの属性がどの経路を塞ぐか。
覚えること
解説
ログインした状態は、ブラウザが Cookie でセッションIDを送り返すことで保たれる。セッションIDが他人に渡ると、その人になりすまされる。Cookie の属性は、渡ってしまう経路を1つずつ塞ぐためのもの。
押さえる規則
- 1Secure 属性は、Cookie を安全な通信(HTTPS)でだけ送らせる。盗聴への対策。
- 2HttpOnly 属性は、Cookie を JavaScript から読めなくする。XSS による読み出しへの対策。
- 3SameSite 属性は、他サイトを起点とするリクエストに Cookie を付けるかを決める。CSRF への対策。
間違えやすいところ
HttpOnly は XSS そのものを防ぐものではない。スクリプトの埋め込みは防げず、Cookie を読み出す経路だけを塞ぐ。