応用情報技術者 2021年 春期 午前2 問44
問題文
Webシステムにおいて、セッションの乗っ取りの機会を減らすために、利用者のログアウト時にWebサーバ又は Webブラウザにおいて行うべき処理はどれか。ここで、利用者は自分専用のPCにおいて、Webブラウザを利用しているものとする。
選択肢
ア:WebサーバにおいてセッションIDを内蔵ストレージに格納する。
イ:WebサーバにおいてセッションIDを無効にする。(正解)
ウ:Webブラウザにおいてキャッシュしている Webページをクリアする。
エ:WebブラウザにおいてセッションIDを内蔵ストレージに格納する。
セッション乗っ取り防止のためのログアウト処理【午前2 解説】
要点まとめ
- 結論:ログアウト時にはWebサーバ側でセッションIDを無効化することが重要です。
- 根拠:セッションIDが有効なままだと第三者に悪用され、セッション乗っ取りのリスクが高まります。
- 差がつくポイント:クライアント側のキャッシュやストレージ操作だけでは不十分で、サーバ側でのセッション管理が必須です。
正解の理由
イ: WebサーバにおいてセッションIDを無効にする。が正解です。
ログアウト時にサーバ側でセッションIDを無効化することで、そのセッションIDは以降使えなくなり、第三者が同じIDを使って不正アクセスすることを防げます。クライアント側の操作だけでは、セッションIDがサーバに残ったままになるため、乗っ取りリスクは解消されません。
ログアウト時にサーバ側でセッションIDを無効化することで、そのセッションIDは以降使えなくなり、第三者が同じIDを使って不正アクセスすることを防げます。クライアント側の操作だけでは、セッションIDがサーバに残ったままになるため、乗っ取りリスクは解消されません。
よくある誤解
- セッションIDをブラウザのキャッシュやストレージから消せば安全と思いがちですが、サーバ側で無効化しなければ意味がありません。
- セッションIDをクライアントに保存すること自体がセキュリティリスクになるため、管理は慎重に行う必要があります。
解法ステップ
- セッション乗っ取りのリスクを理解する(セッションIDの不正利用)。
- ログアウト時に必要な処理は何かを考える(セッションIDの無効化)。
- サーバ側とクライアント側の役割を区別する。
- 選択肢の中でサーバ側でセッションIDを無効化するものを選ぶ。
選択肢別の誤答解説
- ア: WebサーバにセッションIDを内蔵ストレージに格納する → セッションIDはサーバ側で管理し、クライアントのストレージに保存するのは危険。
- イ: WebサーバにおいてセッションIDを無効にする。 → 正解。ログアウト時に必須の処理。
- ウ: WebブラウザにおいてキャッシュしているWebページをクリアする → ページのキャッシュ削除はセッション乗っ取り防止には直接関係しない。
- エ: WebブラウザにセッションIDを内蔵ストレージに格納する → セッションIDをクライアント側に保存すると盗まれるリスクが増す。
補足コラム
セッション管理はWebセキュリティの基本です。セッションIDはCookieやURLパラメータでやり取りされますが、ログアウト時にサーバ側で必ず無効化し、さらにCookieにHttpOnlyやSecure属性を付けることで盗難リスクを減らせます。加えて、セッション固定攻撃対策としてログイン時にセッションIDを再生成することも推奨されます。
FAQ
Q: ログアウト時にブラウザのCookieを削除するだけではダメですか?
A: ブラウザのCookie削除は重要ですが、サーバ側でセッションIDを無効化しなければ、同じIDが悪用される可能性があります。
A: ブラウザのCookie削除は重要ですが、サーバ側でセッションIDを無効化しなければ、同じIDが悪用される可能性があります。
Q: セッションIDを内蔵ストレージに保存するのはなぜ危険ですか?
A: 内蔵ストレージはJavaScriptからアクセス可能なため、XSS攻撃で盗まれるリスクが高まります。
A: 内蔵ストレージはJavaScriptからアクセス可能なため、XSS攻撃で盗まれるリスクが高まります。
関連キーワード: セッション管理、セッション乗っ取り、ログアウト処理、Webセキュリティ、セッションID無効化

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

