Аутентификация с AngularJS, управление сессиями и проблемы безопасности с REST Api WS

Я начал разрабатывать веб-приложение с angularJS, и я не уверен, что все правильно защищено (на стороне клиента и сервера). Безопасность основана на одной странице входа в систему, если учетные данные проверены нормально, мой сервер отправляет обратно уникальный токен с пользовательским сроком действия. Все остальные REST API доступны через этот токен. Приложение (клиент) просматривает мою точку входа, например:https://www.example.com/home.html Пользователь вводит учетные данные и получает обратно уникальный токен. Этот уникальный токен хранится в базе данных сервера с помощью AES или других безопасных методов, он не хранится в открытом формате.

С этого момента мое приложение AngluarJS будет использовать этот токен для аутентификации всех открытых REST Api.

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

app-token : AIXOLQRYIlWTXOLQRYI3XOLQXOLQRYIRYIFD0T

Печенье имеетбезопасный а такжеТолько HTTP флаги установлены. Протокол Http напрямую управляет новым cookie и сохраняет его. Последовательные запросы представят cookie с новым параметром, без необходимости управлять им и сохранять его с помощью javascript; при каждом запросе сервер делает недействительным токен, генерирует новый и отправляет его обратно клиенту -> предотвращает повторные атаки одним токеном.

Когда клиент получает статус HTTP401 несанкционированный В ответ от любого REST Api, угловой контроллер очистит все куки и перенаправит пользователя на страницу входа.

Должен ли я рассмотреть другие аспекты? Лучше хранить токен внутри нового cookie или в localStorage? Любые советы о том, как создать уникальный сильный токен?

Редактировать (улучшения):

Я решил использовать HMAC-SHA256 в качестве генератора токена сеанса с 20-минутным сроком действия. Я генерирую случайный 32-байтовый GUID, прикрепляю метку времени и вычисляю HASH-SHA256, предоставляя 40-байтовый ключ. Совсем невозможно получить коллизии, так как срок действия токена весьма минимален.Печенье будет иметьдомен и путь атрибуты для повышения безопасности.Мульти-логины не допускаются.

Ответы на вопрос(3)

Ваш ответ на вопрос