Neo Inspiration

Feed Rss

php で session_regenerate_id(true) でセッションが切れる問題

05.24.2011, PHP, by .

わざわざセキュリティリスクを上げるプログラムを書くとかどうかしてると思うけど。。

セッションハイジャックのために
session_regenerate_id(true)を書くと
リンクをダブルクリックしたときに高確率でセッションが切れるようになります。
たぶんセッションを保存するI/Oのあたりなんじゃないかなぁと思いますが、
さしあたってこれでは色々と支障をきたすので、
こちら側で session_regenerate_idのタイミングをコントロールしなければなりません。

でこんなかんじ。

//ログインするときexpireにtimeをいれてく
$_SESSION['expires'] = time();

//セッションのページを開くたびにこんなかんじ。
if ($_SESSION['expires'] < time() - 7) {
    session_regenerate_id(true);
    $_SESSION['expires'] = time();

}

わざわざこんなこと書かないといけないなんて・・
なので、セッション使うなら、
ハイジャック対策は別の方法でやるほうがいいのかもしれないですね。
やり方わかりませんが。

php で session_regenerate_id(true) でセッションが切れる問題 への3件のフィードバック

  1. 顔になっているのは何ですか? 1;

  2. >gomiさん
    コメントありがとうございます。
    なぜか顔になっていたのは数字の8です。
    ようはtime()関数での数値と若干ずれないとsession_regenerateをしませんよ ということになります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>