[PHP-users 21645]Re: セッションの受け渡しについて
yuji koga
koga-y @ mcp-net.com
2004年 5月 12日 (水) 17:48:57 JST
お世話になります。古賀です。
>> 皆様は、http から https のほうにセッションを渡す場合
>> どうされているのでしょうか?
1 まず、セッションをDBハンドラする
2 http から httpsに移る際に、SIDとは異なる一意の移行IDを発行、
DB上に移行IDと元のSIDを記録
3 移行IDをGETで渡してhttps内の引き継ぎページへ
(引き継ぎページを利用せず、各ページの前処理に含めても良い)
4 https内の引き継ぎページでは、セッションを開始せずに継ぎ処理のみを行う
(引き継ぎページを利用しない場合は、セッション開始前の前処理とする)
・移行IDからDBを見に行き、元のSIDを新SIDに書き換え
・移行IDとSIDを記録した、先ほどのDB上のレコードを消去(ハイジャック防止)
上記の箇所では、移行IDが見つからないアクセスの場合、
ハイジャックを目的としたアクセスの可能性がありますので、
それ用のロジック分岐を設けて逃がしてください。
・新たなSIDを別途発行
・httpsから見えるセッションクッキーとして新SIDを用意
5 引き継ぎ処理が終了したら、表示ページへジャンプ
(引き継ぎページを利用しない場合はそのまま次へ)
6 httpsページ内でセッション開始(新SIDが使われる)
…こんな手順で、渡しています。
SIDを書き換えますし、GETで渡す移行IDは使い捨てですので、
ハイジャックの危険性から少し逃げられるかもです。
もし穴があったら、ご指摘下さい。
<? /*********************************
株式会社メディアプレス 制作課 古賀裕二
会社:koga-y @ mcp-net.com
*********************************/ ?>
PHP-users メーリングリストの案内