Я смущаюсь о том, как использовать переменную $_SESSION
. До сих пор я узнал, что он используется для хранения временных данных, например, если пользователь входит в систему. Я могу установить некоторые переменные сеанса, чтобы сообщить, что он/она вошли в систему. Теперь моя проблема: должен ли я создать сеанс для каждого пользователя и когда пользователь выходит из системы, уничтожает его или использует только один сеанс для всех пользователей? У меня такое сомнение, потому что я нашел эти "путеводители" http://www.wikihow.com/Create-a-Secure-Login-Script-in-PHP-and-MySQL и выхожу из системы пользователей, которых они выполняют:
include_once 'functions.php';
sec_session_start();
// Unset all session values
$_SESSION = array();
// get session parameters
$params = session_get_cookie_params();
// Delete the actual cookie.
setcookie(session_name(),
'', time() - 42000,
$params["path"],
$params["domain"],
$params["secure"],
$params["httponly"]);
// Destroy session
session_destroy();
header('Location: ../index.php');
Но разве этот код не удаляет все значения, хранящиеся в переменной $_SESSION
поэтому все остальные пользователи входят в систему?
Каждый пользователь (пользователь с точки зрения браузера) на своем сайте получает свою собственную сессию и, следовательно, своего рода переменную $ _SESSION.
Вы можете проверить свои файлы cookie на своем веб-сайте, обычно называется PHPSESSID с уникальным идентификатором для каждого пользователя/браузера. Данные сеанса хранятся на сервере, и только если у вас есть правильный идентификатор сеанса, вы получаете значения в переменной $ _SESSION var.
Теперь, если вы уничтожите эту переменную для одного пользователя, только его данные исчезли, данные всех других пользователей все еще существуют и доступны для них.
Рекомендуется использовать вызов session_regenrate_id(true);
когда пользователь входит в систему или выходит из системы (или в любой момент, когда уровень их авторизации * действительно изменяется). Это перезапускает сеанс с новым идентификатором и копирует все содержимое. Это может помочь предотвратить фиксацию сеанса, если злоумышленник пытается вытащить свои файлы cookie через XSS в другой, не зарегистрированный в части сайта.
Кроме того, лучше всего использовать cookie "HTTP only" и HTTPS (secure), если вы запустите сайт HTTPS.