Аутентификация пользователей PHP с помощью сеансов

Поэтому мой вопрос очень прост.

Проверяя, что пользователь все еще зарегистрирован на любой странице, я буду использовать

if (isset($_SESSION['user']) && $_SESSION['user'] == true) { CODE } 

Но не следует ли использовать хеш-значение вместо логического значения для $ _SESSION ['user']? Все справочники, которые я нахожу, используют логические значения, но с моей точки зрения это утечка безопасности, не так ли? Люди все время говорят о Session-Hjacking и Session-Fixation, и это было бы очень легко, если бы я просто использовал логические значения для сеанса пользователя, не так ли? Или я просто смешиваю вещи здесь?

спасибо

Здесь я прочитал два вопроса. Первый вопрос: «Какова наилучшая практика для определения того, вошел ли пользователь в систему?», И второй вопрос «Есть ли проблема с Session-Hjacking и Session-Fixation?»

Первый вопрос: Большинство веб-приложений / cms, с которыми я работал, имеют пользовательский объект. Нет ничего особенного в этом объекте с точки зрения кода, его просто объект, представляющий пользователя. Зарегистрированный пользователь имеет свой пользовательский объект, хранящийся в сеансе. $_SESSION['user']

В Drupal (и других платформах) функция используется для возврата текущего зарегистрированного пользователя или False, если пользователь не вошел в систему.

Пример:

 function user(){ if( isset($_SESSION['user') and is_object($_SESSION['user'] and get_class($_SESSION['user']=='myUserClass')) ){ return $_SESSION['user']; }else{ return False; } } 

Итак, в вашем примере мы видим, работает if ( user() ) { CODE } потому что весь объект оценивается как True в предложении if .

Второй вопрос: Session-Hjacking и Session-Fixation на самом деле не являются проблемой. Клиент (веб-браузер) не имеет доступа к массиву $ _SESSION сервера. Короче говоря, да, вы смешиваете вещи здесь.