@belkin404

Авторизация в веб приложении. Готовый алгоритм?

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

Алгоритм работает через куки, по этому необходимо было продумать механизм защиты о кражи (и подставлении) куки.

Сам алгоритм:
Авторизация в веб приложении:
  1. Пользователь вводит свои логин и пароль.
  2. Проверяем пару логин пароль и если совпадают то идем дальше, если нет все заново.
  3. Формируем идентификатор сессии: sha256(sha256(pass)+IP+User Agent)
  4. Записываем в базу идентификатор сессии
  5. Записываем в куки id пользователя и идентификатор сессии


Проверка при обновлении страницы:
  1. Достаем из кук id пользователя и идентификатор сессии
  2. Достаем по id из базы захешированный пароль (он там хранится в виде sha256(pass)) и идентификатор сессии
  3. Получаем текущие ip и User Agent пользователя
  4. Из полученного хеша пароля, ip и User Agenta получаем текущий идентификатор сессии
  5. Сравниваем текущий идентификатор сессии с тем что получили из куки. Если норм идем дальше, если нет на страницу авторизации
  6. Сравниваем текущий идентификатор сессии с тем что получили из базы. Если норм получаем доступ к ресурсу, если нет идем на страницу авторизации
  • Вопрос задан
  • 57 просмотров
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
КАКОЙ ТЫ ДИВАН?
много текста

в куку зашиваешь ИД устройства

только приходит кука с другим ИД - разлогин для первой куки

ну и на сервере строищь матрицу секурности там и всего такого (если нужно, конечно)

механизм защиты о кражи
называется httpS

все другие MITM перехватит
https тоже приложуха перехватит, так что - см. про матрицу, если нужно мегазащита
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
29 мая 2020, в 01:41
850 руб./за проект
29 мая 2020, в 00:02
5000 руб./за проект
28 мая 2020, в 23:42
10000 руб./за проект