セッションIDとは?
セッションIDとは、ログイン後の一連のやり取りを同じ利用者のものだと識別するために、Webサーバが発行してブラウザに持たせる文字列。HTTPは状態を持たないため、以後のリクエストはこのIDだけで「認証済みの誰か」と判断される。したがってIDを盗んだ第三者はパスワードを知らなくても成りすませる(セッションの乗っ取り)。対策は、推測できない乱数で生成する、Cookieに Secure と HttpOnly を付ける、ログイン成功時にIDを振り直す、そしてログアウト時にサーバ側でIDを無効化(破棄)することである。
高度試験・午前I(全区分共通)の過去問では3回出題されています(2016年度〜2021年度)。
せっしょんあいでぃー
セッションIDの意味
ログイン後の一連のやり取りを同じ利用者のものだと識別するために、Webサーバが発行してブラウザに持たせる文字列。HTTPは状態を持たないため、以後のリクエストはこのIDだけで「認証済みの誰か」と判断される。したがってIDを盗んだ第三者はパスワードを知らなくても成りすませる(セッションの乗っ取り)。対策は、推測できない乱数で生成する、Cookieに Secure と HttpOnly を付ける、ログイン成功時にIDを振り直す、そしてログアウト時にサーバ側でIDを無効化(破棄)することである。
セッションIDの具体例
利用者が「ログアウト」を押したとき、ブラウザのCookieを消すだけでは不十分で、サーバが保持しているセッション情報を破棄して同じIDを二度と有効にしないようにする。こうしておけば、過去に盗まれたIDが後から提示されても認証済みとして扱われない。
セッションIDは試験でどう引っ掛けられる?
対策の主体をサーバ側に置くこと。ブラウザのキャッシュを消す、IDをディスクや内蔵ストレージに保存する、といった操作は乗っ取りを防がない。むしろIDをディスクへ書き出すのは、盗まれる経路を増やすので逆効果である。
セッションIDと関連する用語
セッションIDが出た過去問
Webアプリケーションのセッションが攻撃者に乗っ取られ,攻撃者が乗っ取ったセッションを利用してアクセスした場合でも,個人情報の漏えいなどの被害が拡大しないように…
正解:パスワードによる利用者認証を行う。
要点:重要処理の直前に再認証すればセッション乗っ取りの被害を抑制
セッションを乗っ取られること自体を防げなかった場合でも、重要情報を返す直前にパスワードなど本人しか知らない情報で再認証すれば、攻撃者はその先へ進めない。通信の暗号化やセッションIDの保管方法は乗っ取りの予防策であって、乗っ取られた後の被害拡大は防げない。この設問は被害の拡大防止を問うている点に注意する。
出典:平成28年度 春期 高度共通_午前I試験 am1 問14(IPA)Webシステムにおいて、セッションの乗っ取りの機会を減らすために、利用者のログアウト時にWebサーバ又はWebブラウザにおいて行うべき処理はどれか。ここで、利用…
正解:Webサーバにおいてセッション IDを無効にする。
要点:ログアウト時はサーバ側でセッションIDを必ず無効化する
セッションの乗っ取りは、有効なセッションIDを第三者が入手して成りすますことで成立する。したがってログアウト時にはサーバ側でそのセッションIDを無効化(破棄)し、以後同じIDが提示されても認証済みとして扱わないようにすることが本質的な対策になる。
出典:平成30年度 春期 高度共通_午前I試験 am1 問15(IPA)Webシステムにおいて、セッションの乗っ取りの機会を減らすために、利用者のログアウト時にWebサーバ又はWebブラウザにおいて行うべき処理はどれか。ここで、利用…
正解:WebサーバにおいてセッションIDを無効にする。
要点:ログアウト時はサーバ側でセッションIDを無効化する
セッションの乗っ取りは、有効なセッションIDを第三者に悪用されることで成立する。したがってログアウト時には、サーバ側でそのセッションIDを無効化(破棄)し、以後同じIDを提示されても認証済みとして扱わないようにすることが本質的な対策になる。IDを消さずにブラウザ側だけで処理しても、盗まれたIDはサーバで有効なままである。
出典:令和3年度 春期 高度共通_午前I試験 am1 問15(IPA)
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。