Я изучаю потоки JWT, вижу много потенциальных проблем безопасности (например, XSS)
ср. medium.com / hackernoon / все, что вам нужно знать о безопасности сеанса пользователя
Я понимаю, что основными проблемами являются:
- JWT можно украсть, хранить где угодно - плохо
- аннулировать JWT сложно, рекомендуется использовать один JWT на запрос или короткий срок действия (меньшее влияние при краже)
Почему бы и нет использовать cook ie для аутентификации (сеанс хранится на сервере) и JWT для авторизации?
Клиент отправляет cookie + JWT, сервер гарантирует, что клиент является правильным владельцем JWT.
- JWT может быть подписанным / декодированным с уникальным секретом для каждого пользователя, хранящимся в хранилище сеансов
Легче сделать недействительным, если пароль изменен (измените секрет в хранилище сеансов) или выйдите из системы (удалите cook ie в браузере) или Жесткий выход из системы (удаление сеанса на сервере).
Основным недостатком является большой размер запросов (клиент отправляет cookie + JWT), и вы сохраняете хранилище сеансов, но JWT кажется небезопасным для использования во всех сеансах.
Я новичок, но, похоже, с этим что-то можно сделать, и я не могу найти информацию или отзывы об этом.
Извините за мой английский sh ?