Аутентификация сеанса для клиентов как браузера, так и не браузера - PullRequest
0 голосов
/ 04 февраля 2019

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

  1. Клиент отправляет учетные данные для входа в систему
  2. После проверки сервер генерирует (session_key, expires_at) <- (a 256-bit pseudo-random string, some date in the future) и сохраняет егов выбранной системе хранения.
  3. Сервер устанавливает ключ сеанса в файле cookie HTTP Only в ответе.
  4. Сервер устанавливает полезную нагрузку ответа {session_key: ..., expires_at: ...}.Причина в том, что клиенты без браузера не имеют cookie, и они будут читать эту полезную нагрузку, локально сохраняя ее для будущего использования.

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

1 Ответ

0 голосов
/ 05 февраля 2019

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

Убедитесь, что ваша конечная точка аутентификации не принимает действительные сеансы, и отправьте обратно свой ключ , так как это может подвергнуть вас CSRF и краже сеансов!

Для альтернативных методов аутентификации проверьте Руководство по веб-аутентификации , я собрал.

...