セッションIDとは?せっしょんあいでぃー
セッションIDとは、ログイン後の一連のやり取りを同じ利用者のものだと結び付けるために、Webサーバが発行してブラウザへ持たせる文字列。HTTPは前後の要求を覚えない設計なので、以後の要求はこの値だけで「認証済みの誰か」と判断される。
最終更新:2026-10-07
この語が出る過去問を解く →背景
1回ごとに切れる通信の上で「ログイン状態」を作るには、何らかの目印を持ち回るしかない。ところがその目印は、盗んだ側にとってパスワードを知らずに成りすませる合鍵になる(セッションの乗っ取り)。この構造上、値をどう守り、いつ捨てるかがそのまま対策の中身になる。
具体例
実装ではPHPのsession_regenerate_id()がログイン成功時の振り直しに、JavaのHttpSession#invalidate()がログアウト時のサーバ側破棄に対応する。値は推測できない乱数で生成し、Cookieには Secure と HttpOnly を付ける。
試験での引っ掛け
対策の主体はサーバ側に置く。ブラウザのキャッシュを消す、値をディスクへ保存するといった操作は乗っ取りを防がず、後者はむしろ盗まれる経路を増やすぶん逆効果になる。
関連用語
出た過去問
問題文で直接問われたものと、解説の中で触れられたものが含まれます。
出典:平成28年度 春期 高度試験 午前Ⅰ 問14(IPA)解説で登場
Webアプリケーションのセッションが攻撃者に乗っ取られ,攻撃者が乗っ取ったセッションを利用してアクセスした場合でも,個人情報の漏えいなどの被害が拡大しないように…
正解:パスワードによる利用者認証を行う。
要点:重要処理の直前に再認証すればセッション乗っ取りの被害を抑制
セッションを乗っ取られること自体を防げなかった場合でも、重要情報を返す直前にパスワードなど本人しか知らない情報で再認証すれば、攻撃者はその先へ進めない。通信の暗号化やセッションIDの保管方法は乗っ取りの予防策であって、乗っ取られた後の被害拡大は防げない。この設問は被害の拡大防止を問うている点に注意する。
出典:平成30年度 春期 高度試験 午前Ⅰ 問15(IPA)
Webシステムにおいて、セッションの乗っ取りの機会を減らすために、利用者のログアウト時にWebサーバ又はWebブラウザにおいて行うべき処理はどれか。ここで、利用…
正解:Webサーバにおいてセッション IDを無効にする。
要点:ログアウト時はサーバ側でセッションIDを必ず無効化する
セッションの乗っ取りは、有効なセッションIDを第三者が入手して成りすますことで成立する。したがってログアウト時にはサーバ側でそのセッションIDを無効化(破棄)し、以後同じIDが提示されても認証済みとして扱わないようにすることが本質的な対策になる。
出典:令和3年度 春期 高度試験 午前Ⅰ 問15(IPA)
Webシステムにおいて、セッションの乗っ取りの機会を減らすために、利用者のログアウト時にWebサーバ又はWebブラウザにおいて行うべき処理はどれか。ここで、利用…
正解:WebサーバにおいてセッションIDを無効にする。
要点:ログアウト時はサーバ側でセッションIDを無効化する
セッションの乗っ取りは、有効なセッションIDを第三者に悪用されることで成立する。したがってログアウト時には、サーバ側でそのセッションIDを無効化(破棄)し、以後同じIDを提示されても認証済みとして扱わないようにすることが本質的な対策になる。IDを消さずにブラウザ側だけで処理しても、盗まれたIDはサーバで有効なままである。
出典・参考
公式シラバスの3 技術要素 > 5. ネットワーク応用 > (1) インターネットに掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。