- アクセスの度にセッションIDを再発行する
- ただし、セッションのロストを防ぐために、一定時間以内は再発行しない
// 一定秒数以内のアクセスは、同一アクセスとみなし、再発行しない
$regenerateSessionInterval = 10;
// 前回のセッションID振り直しから一定時間経過している場合、振り直す
if (isset($_SESSION['Controller::lastRegenerateSessionTime'])) {
if ($_SESSION['Controller::lastRegenerateSessionTime'] + $regenerateSessionInterval < time()) {
session_regenerate_id(true);
$_SESSION['Controller::lastRegenerateSessionTime'] = time();
}
}
// 初回の場合、必ず振り直す
else {
session_regenerate_id(true);
$_SESSION['Controller::lastRegenerateSessionTime'] = time();
}