Ответ Оба!
Суть:
Вы должны никогда слепо принимать файлы cookie или сеансы для проверки пользователей, которые легко похищаются XSS и могут использоваться злоумышленником, отличным от источника.
Для проверки пользователя, поскольку вы все равно совершаете поездку для проверки пользователя, на самом деле никаких накладных расходов нет.
Вы просто применяете значение к тому моменту, когда они вошли в базу данных, и проверяете его некоторыми способами при каждой загрузке страницы.
Я выбрал метод checkin-checkout для состояния сеанса пользователя.
В котором уникальный идентификатор создается при загрузке страницы, а переменная сеанса хранит этот уникальный идентификатор.
Этот уникальный идентификатор также сохраняется для идентификатора пользователя в базе данных вместе с IP-адресом и изменениями IP-адреса. (Я также сохранил другие биты информации, которые были проверены)
Это можно использовать для предотвращения одновременного входа в систему двух отдельных браузеров для одного идентификатора пользователя, что невозможно сделать только с помощью сеансов, поскольку сеансам все равно, кто их создал и когда.
Но с checkin-checkout, поскольку уникальный идентификатор всегда отличается, может возникнуть несоответствие.
Сценарий проверяет уникальный идентификатор на основе значения сеанса и IP-адреса в базе данных. Как только совпадение будет сделано, измените уникальный идентификатор и обновите базу данных.
Если IP-адрес был изменен в течение x секунд, сделайте что-нибудь для этого пользователя (Принудительно новый вход в систему), если уникальные идентификаторы не совпадают, сделайте что-нибудь еще (например, выйдите из системы, предупредите и т. Д.), Если последнее действие было x секунд назад, сделайте что-нибудь для этого пользователя.
Итак, Войти-> Создать сеанс / Проверка пользователя-> Следующая страница-> Проверить сеанс с уникальным идентификатором базы данных + Проверить пользователя-> Создать новый идентификатор сеанса-> Обновить последнего пользователя / уникальный идентификатор пользователя
В конце концов, он может дать вам более полное представление о том, откуда ваши пользователи получают доступ к своим учетным записям и как часто из каждой точки EG: работа х 3, дом х 5, мобильный х 1, а также позволяет защитить ваши пользователи от краж аккаунта. EG: Немецкий пользователь неожиданно входит в систему из Таиланда или США. Сообщите им об изменениях и отправьте запрос на подтверждение изменений на их электронную почту.