2011-03-27 2 views
0

Примечание: этот вопрос задает вопрос о том, где хранить попыток входа в систему и текущий статус входа.Где хранить попытки входа в систему и текущий статус входа в систему, файлы cookie или сеансы?

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

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

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

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

+2

В большинстве случаев cookie будет хранить ваш идентификатор сеанса. Кажется, это глупое различие. –

ответ

0

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

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

Хорошо читать:

+0

Хорошо. Поэтому, если вы захотите включить в мою регистрационную форму флажок «Помнить меня», мне придется установить cookie для любого человека, проверить и не выйти из системы, или он все еще хранит данные, даже если кто-то ударил кнопка выхода из системы? –

2

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

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

+0

Благодарим вас за идею. По местоположению я имел в виду страну, город или город пользователя, который входит в систему. –

+0

@ Энтони в теории. на практике вы никогда не будете использовать ничего другого. во всяком случае, этот вопрос касается другого вопроса. –

+0

@ Энтони, вы используете файлы cookie для хранения идентификатора сеанса на ** клиенте **. Вы знаете, где трудно найти базу данных. –

1

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

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

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

После того, что находится в месте, вы можете создать непредвиденные обстоятельства:

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

Вы получаете идею, я надеюсь.

+0

У меня есть идея, и это так полезно. Однако где-то вы сказали: «Как только они аутентифицируются, вы установите переменную сеанса для отслеживания своего текущего входа на заданное и пользовательское устройство», которое, я думаю, является отличной идеей, но всякий раз, когда пользователь аутентифицируется, это означает, что система создаст новый идентификатор сеанса и, следовательно, позволяя пользователю входить в систему несколько раз подряд. –

Смежные вопросы