Дублирование идентификатора сессии - PullRequest
0 голосов
/ 07 сентября 2011

По какой-то причине, когда я вхожу в систему с моей CMS в первый раз, а затем выхожу, а затем снова входите в систему, он не создает новый session_id.Он хочет использовать тот же идентификатор сессии до того, как я вышел из системы.Любые мысли о том, почему это будет?

Это моя страница выхода:

<?php

// Access the existing session
session_start(); 

// Delete the session variable
unset($_SESSION);

// Destroy the session data:
session_destroy();

// Redirects to the login page
header ('Location: login.php');

?>

Ответы [ 2 ]

2 голосов
/ 07 сентября 2011

Если вы впервые загрузите страницу, у вас нет файла cookie, содержащего идентификатор сеанса, поэтому сервер создает новый файл и отправляет его вам. Если вы выходите из системы, куки остаются, поэтому при повторном входе в систему сервер получает sessionid из куки и не создает новый. Таким образом, вы держите свой sessionid. Это не очень безопасно. То, что CMS или вы должны сделать, это вызвать session_regenerate_id () сразу после проверки имени пользователя и пароля. Таким образом, вы также предотвращаете фиксацию сессии

1 голос
/ 07 сентября 2011

Вы, вероятно, отменяете некоторые переменные сеанса (те, которые сообщают, если пользователь вошел в систему, и каков их идентификатор пользователя), но вы забыли вызвать session_destroy() как часть процесс выхода из системы.

Обновление: Кажется, вы правильно удаляете состояние сеанса, но не сбрасываете cookie сеанса. Приведенная выше ссылка объясняет, что вам нужно сделать, и предоставляет пример кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...