Сессии в php, как обрабатывать входы в систему

0

Я смущаюсь о том, как использовать переменную $_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 поэтому все остальные пользователи входят в систему?

  • 0
    Я думаю, что вам нужно лучшее понимание PHP. Это должно быть задано в стеке потока.
Теги:
session

2 ответа

1
Лучший ответ

Каждый пользователь (пользователь с точки зрения браузера) на своем сайте получает свою собственную сессию и, следовательно, своего рода переменную $ _SESSION.
Вы можете проверить свои файлы cookie на своем веб-сайте, обычно называется PHPSESSID с уникальным идентификатором для каждого пользователя/браузера. Данные сеанса хранятся на сервере, и только если у вас есть правильный идентификатор сеанса, вы получаете значения в переменной $ _SESSION var.
Теперь, если вы уничтожите эту переменную для одного пользователя, только его данные исчезли, данные всех других пользователей все еще существуют и доступны для них.

0

Рекомендуется использовать вызов session_regenrate_id(true); когда пользователь входит в систему или выходит из системы (или в любой момент, когда уровень их авторизации * действительно изменяется). Это перезапускает сеанс с новым идентификатором и копирует все содержимое. Это может помочь предотвратить фиксацию сеанса, если злоумышленник пытается вытащить свои файлы cookie через XSS в другой, не зарегистрированный в части сайта.

Кроме того, лучше всего использовать cookie "HTTP only" и HTTPS (secure), если вы запустите сайт HTTPS.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню