Где хранить попытки входа и текущий статус входа, файлы cookie или сеансы? - PullRequest
0 голосов
/ 27 марта 2011

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

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

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

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

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

Ответы [ 3 ]

2 голосов
/ 27 марта 2011

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

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

1 голос
/ 27 марта 2011

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

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

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

Как только это будет сделано, вы можете создать непредвиденные расходы:

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

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

0 голосов
/ 27 марта 2011

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

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

Хороший текст:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...