ユーザーが現在のセッションにログインすると、変数が設定されます
$_SESSION['user']['timeout'] = time();
$_SESSION['user']['ip'] = $_SERVER['REMOTE_ADDR'];
$_SESSION['user']['agent'] = $_SERVER['HTTP_USER_AGENT'];
私の common.php ページ (すべての php ページで必要) で、以下のスクリプトを使用しました。これは、ユーザーがアクティブになるたびに 15 分のタイマーをリセットし、さらに IP アドレスをチェックし、user_agent をチェックします。彼らが最初にログインしたとき/セッションが最初に設定されたとき、セッションはさらに設定解除され、最大15分間非アクティブで、セッションも設定解除されます。
...私が行ったことは、セッションハイジャックを防ぐための良い方法ですか?それは安全ですか?それとも十分ですか? そうでない場合、これ以上何ができるでしょうか?
if(!empty($_SESSION['user'])){
if ($_SESSION['user']['timeout'] + 15 * 60 < time()) {
unset($_SESSION['user']);
} else {
$_SESSION['user']['timeout'] = time();
if($_SESSION['user']['ip'] != $_SERVER['REMOTE_ADDR']){
unset($_SESSION['user']);
}
if($_SESSION['user']['agent'] != $_SERVER['HTTP_USER_AGENT']){
unset($_SESSION['user']);
}
}
}