Где хранить попытки входа и текущий статус входа в систему, файлы cookie или сеансы?

Примечание. Этот вопрос касается того, где хранить попытки входа и текущий статус входа .

Я создаю веб-приложение, в котором пользователи должны будут зарегистрироваться для получения данных аутентификации, которые будут использоваться при входе в систему, но я новичок в безопасности.

И я хочу, чтобы пользователь входил в систему только один раз за сеанс, поэтому у пользователя не должно быть более одной успешной аутентификации, т. Е. Невозможно войти в систему одновременно с компьютера a и компьютера b или когда уже прошла успешная аутентификация одного и того же пользователя существует или не выходил из системы.

Я думаю, мне нужно отслеживать местоположение пользователя, попытки входа в систему и текущий статус входа в систему; для того, чтобы действовать соответствующим образом. Я ищу ваши советы о том, что использовать между куки-файлами и сеансами, как отслеживать местоположение пользователя, и больше предложений приветствуются.

Заранее спасибо.

Ничего из этого.
Вы должны использовать базу данных для удовлетворения ваших потребностей.
Вы должны сохранить текущий идентификатор сеанса, попытки входа и статус входа в базу данных.
Не знаю, что это за место.

Хотя файлы cookie должны использоваться для самой авторизации, для передачи идентификатора сеанса между сервером и клиентом.

Из того, что я знаю, вы не можете отслеживать и сравнивать сеансы на сервере для проверки активных подключений для одного и того же «аутентифицированного» пользователя. Я предполагаю, что вы отслеживаете логин и пароль пользователя в базе данных, а затем, как только они аутентифицируются, вы устанавливаете переменную сеанса для отслеживания их текущего входа на данном конечном пользовательском устройстве.

Лучший способ, который я могу себе представить (помимо регулярных сбоев отключений, пользователей, не выходивших из системы и т. Д.), Было бы иметь таблицу в вашей базе данных для отслеживания логинов и статуса:

  • Идентификатор пользователя
  • IP-адрес (вытащенный из заголовков / браузера)
  • последний тайм-логин (UTC)
  • Текущий статус входа (boolean)
  • Последнее известное значение сеанса сервера

После этого вы можете создать непредвиденные ситуации:

  • выйдите из вошедшего в систему устройства, если я снова аутентифицируюсь в другом месте, если сервер уничтожит сеанс, хранящийся в базе данных, и заменит его активным сеансом нового устройства
  • проверить IP-адрес при аутентификации и заблокировать пользователя или использовать метод выше для выхода из удаленного сеанса

Надеюсь, вы получите эту идею.

Основное различие между куки-файлами и сеансами заключается в том, что файлы cookie хранятся в браузере пользователя, а сеансы – нет. Эта разница определяет, для чего лучше всего использовать.

Нужно использовать файлы cookie для хранения того, что мы хотим знать, когда пользователь вернется на веб-страницу в будущем (например, помните, что на этом компьютере флажок на страницах входа использует куки, чтобы запомнить пользователя, когда он возвращается).
Сеансы следует использовать для запоминания чего-либо для этого конкретного сеанса браузера (например, имя пользователя, отображаемое на каждой странице или где-либо когда-либо).

Хорошо для чтения :

  • Почему вы, вероятно, не должны использовать файлы cookie для хранения данных сеанса