[PHP-users 17602]Re: session_regenerate_id()の挙動について
Reiji Matsumoto
matsumoto @ spline.oc.to
2003年 8月 30日 (土) 22:15:24 JST
Matsumoto @ Spです。
> session_regenerate_id()使うといいんじゃない?
私も同じような事を言っていました…。
追試してみましたが結果は同じです。
セッションファイルは残りますし、内容も保持されています。
元々これで完璧にセッションハイジャックを防げるわけでも無い
ですが、やっぱりよくないですねぇ…。
環境
php 4.3.3
Apache/1.3.27
Red Hat Linux 8.0 3.2-7
以下は php 4.3.3以前にsession_regenerate_id()と同等の
機能を実現するために作った関数です。
こっちはうまくいくようです。
function session_switching()
{
$QQ = serialize($_SESSION);
session_destroy();
session_id(md5(uniqid(rand(),1)));
session_start();
$_SESSION = unserialize($QQ);
}
>#session_regenerate_id()ってそもそも何の目的で作られたんだろうか。。?
基本的にはセッションハイジャック対策であり、特に非SSL環境から
SSL環境に移行する際にセッション変数を継続して利用しているサイ
トが、レガシーシステムを生かしながらセキュアなセッション管理
を行うためにあるのだと思います。
その意味では/tmpの中にファイルが残っていても、スニファリングに
対する有用性には影響しませんので、まったく無意味では無いですね。
PHP-users メーリングリストの案内