はて、session_regenerate_id(true)ネタ。
いろいろやってみたんですが、session_regenerate_id(true)するとセッション切れます。
ブラウザ連打すると切れます。
でも、セッションハイジャックのことを考えると再生成する必要はあると思うので、下記のような対処で落ち着きました。
1.とりあえずxFrameworkPXでは、MySQLSessionでのみ再生成の連打に対する対応をした。
2.再生成するタイミングを、設定で変更できるようにして、毎回再生成するのではなく、ある一定期間(設定されている秒数)で再生成することにした。
これで、切れません。
おそらく、連打されるとセッションID変わったときに、まだ前のセッションデータが保存される前に、セッション値として空が取得され、それを保存してしまっているため、発生するものだと思われます。
まぁ・・そりゃそうだわな。
で、昔のWEBの8秒ルールとかいろいろありましたが、とりあえず初期設定で5秒以上たったときのアクセスの場合にIDを再生成するようにしました。
んーバランスがとれてる感じがする。
これはxFrameworkPX 3.0.0で反映されています。
まだ、だしてないけどね>今年の9月15日前後リリース予定(未定)
session_regenerate_id(true) によるセッション切れ