〔Webアプリケーションの改修〕
 次にG君は, Webアプリケーションの改修について検討した。G君が考えた,モバイル端末とWebサーバ間の送受信シーケンスを,図2に示す。

pm1-3-2
従来,F社のクライアント端末は同一機種のPCだけであり, Webアプリケーションでは,セッション管理にクッキーを利用していた。
女性ほおづえ

セッションってそもそも何でしたっけ? TCPのコネクションとの違いも教えて下さい



TCPのコネクションは3wayハンドシェークが行われる一連の通信。一方のセッションという言葉は、あいまいな言葉である。かなり乱暴ではあるが、買い物サイトにログインした情報と考えてほしい。
 一つのセッションに複数のTCPコネクションが作成されることになるだろう。
1

なぜセッション管理が必要なんですか?
Webサイトでショッピングをする際に、ログインすることが多い。ログインした情報を持っておけば、買い物がスムーズに行える。たとえば、購入履歴のページでは、ログインIDをもとに表示できる。発送の段階ではログインIDをもとに住所を表示できる。
 このように、Webページをまたがって一連の処理をするときに、セッション管理が求められる。

[Question9] セッションの管理方法にはどんな方法があるか?



A9 この問題には2つの方法が記載されている。
.ッキー
URLリライティング →[ オ ]の解答

,離ッキー(Cookie)に関して少し解説する。
たとえば、Gmailにログインすると、クライアントのブラウザに、以下のようなCookieが複数作成される。
NAME GX
VALUE xxxx(長いので省略)
DOMAIN mail.google.com
PATH /mail
EXPIRES 2013/07/01 6:05:36

しかし、問題文にあるように、今回は携帯などのモバイル端末も使うようだ。古い携帯では、Cookieが使えないものもあり、注意が必要だ。

URLリライティング
 問題文にあるように、Cookieが使えない端末を想定して、SID(セッションID)をURLに埋め込むのだ。
URLに jsessionid=xxx などと直に書く。当然ながら、セッションIDが見えているわけだから、セッションハイジャックなどの攻撃に会いやすくなる。

[Question10] ログイン認証要求ではSID=xxxなのに、その応答のログイン完了表示では、SID=yyyとなっている。SIDが変わっているのはなぜか?



A10 これは、セッションハイジャックを防ぐために当然の処置である。
セッション情報さえわかれば、この人のセッションを持って買い物などができる。ログインは不要だ。ログインした後のセッションIDを使うからだ。

pm1-3-4
ではどうするか。
SSLで暗号化する
非SSLのSIDとは別のSIDを使う