Это мой код для проверки подлинности на веб-сайте. Я не уверен, правильна ли моя логика. Если имя пользователя и пароль верны, выполните следующее:
if(session_start())
{
session_regenerate_id(true);//without this the session ID will always be the same
$_SESSION['loggedInUser'] = $uName;
echo 'You are now logged in';
}
else echo 'Right password/username but session failed to start';
Последующие страницы проверяют, зарегистрирован ли пользователь в
session_start();
if(isset($_SESSION['loggedInUser'])
{
//rest of page
}
else echo 'you must log in';
При выходе из системы у меня есть
session_start();//if I don't have this the next line produces an error
session_unset();//destroys session variables
session_destroy();//ends session
Я не хочу вызывать session_start() при выходе из системы, но если у меня его нет, я получаю сообщение Trying to destroy uninitialized session
. Как я могу это исправить?
Рекомендуем или не создавать отпечаток пальца на основе IP-адреса и агента пользователя? Я краснею, потому что несколько компьютеров могут использовать один и тот же IP-адрес, если они есть, например, компьютерная лаборатория, и весь трафик проходит через прокси-сервер, и тот же компьютер может изменить его IP-адрес, если он динамический. С другой стороны, как часто это происходит? Возможно, несколько заблокированных действительных применений, чтобы предотвратить захват всех сеансов.
Даже если вы можете рекомендовать авторитетные статьи, которые я должен прочитать, чтобы узнать об этой теме, это было бы здорово, спасибо.
5/6 ответов имеют меньше голосов 0:( Может ли проголосовать за избирателей, чтобы я знал, на что обратить внимание?