Ответ на этот вопрос И то и другое!
Главное: Вы должны никогда не слепо принимать куки или сессии для проверки пользователей, оба из которых легко похищенные XSS, и могут быть использованы злоумышленниками, кроме происхождения.
Для проверки пользователей, так как вы все-таки совершаете поездку для проверки пользователя, на самом деле нет накладных расходов. Вы просто применяете значение при входе в базу данных и проверяете его с помощью некоторых средств при каждой загрузке страницы.
Метод, который я выбрал, - это метод проверки в состоянии сеанса пользователя. В котором уникальный идентификатор создается при загрузке страницы, а переменная сеанса хранит этот уникальный идентификатор. Этот уникальный идентификатор также сохраняется для идентификатора пользователя в базе данных, а также IP-адрес и IP-изменения. (Я также хранил другие биты информации, которые проверяются)
Это может использоваться для одновременного входа в систему двух отдельных браузеров для одного идентификатора пользователя, который не может быть выполнен только с сеансов с сеансов неважно, кто их создал или когда. Но с checkin-checkout, так как уникальный идентификатор всегда отличается, произойдет несоответствие.
Сценарий проверяет уникальный идентификатор из значения сеанса и IP-адреса в базе данных. Как только будет выполнено совпадение, измените уникальный идентификатор и обновите базу данных. Если IP-адрес был изменен в течение x секунд, сделайте что-нибудь для этого пользователя (принудительно введите новый логин), если уникальные идентификаторы не совпадают, чтобы сделать что-то еще (например, выход из системы, предупреждение и т. Д.), Если последняя активность была x секунд назад что-то для этого пользователя.
Так Login-> Создать сеанс/Validation- пользователя> Далее PAGE-> Validate сеанс с базой данных Unique ID + Validate user-> Generate New Session Unique id-> Обновление пользователя Последний On/Unique ID
В в конце он может дать вам лучший обзор того, где ваши пользователи обращаются к своим учетным записям, и как часто из каждой точки EG: работать x 3, home x 5, mobile x 1. И также позволяет вам защищать своих пользователей от краж аккаунтов. EG: Немецкий пользователь внезапно входит в систему из Таиланда или США. Сообщите им об изменении и отправьте запрос, чтобы проверить изменение на их электронную почту.
Почему вы хотите подражать базовой функциональности сеансов? Для этого вам не нужна база данных, просто будет работать обычный сеанс. – Duroth
@Duroth. Существует аргумент killer. ПРОТИВ сессий, основанных на файлах: когда вы используете облачные серверы (несколько экземпляров зеркального сервера)! Может случиться так, что балансировщик нагрузки перемещает пользователя на другой сервер при каждом запросе страницы. В этом случае сеансы на основе файлов (сеансы php - это просто текстовые файлы на сервере) бесполезны. – Sliq