Я только что узнал о JWT для аутентификации. Хранение токена JWT в localStorage/sessionStorage распространяется на XSS. Хранение его в cookie уязвимо для CSRF. Я изучал это, и я думал об этом решении, но я не уверен, насколько это безопасно, и если я буду использовать его в производстве.Безопасные способы реализации CSRF free JWT аутентификации
Душевное желание получить токен JWT с сервера, сохранить его в cookie. Создайте токен CSRF (который будет сохранен в JWT), который будет отправлен с каждой HTML-страницей, либо в скрытом поле HTML как глобальная переменная JS(). Этот токен CSRF будет отправляться с каждым запросом с использованием JS/AJAX. Таким образом, мы можем исключить CSRF, а затем проверить токен JWT.
Я не уверен, должен ли быть отправлен новый токен с каждой загруженной страницей или один токен должен быть проведен за сеанс. Первый случай будет означать, что может быть отправлена только последняя загруженная страница/форма (что может быть проблематично, если пользователь открывает несколько вкладок других страниц).
Это безопасное решение, которое может быть использовано в производстве?
Кроме того, какие другие решения были бы жизнеспособными для достижения одной и той же цели?
JWT, связанные с аутентификацией API, я не думаю, что нет необходимости в CSRF, так как вы аутентифицировать ваш запрос с JWT уже, или вы можете блокировать запрос перекрестный происхождения и ограничить его в некоторых областях –
я не думаю, вы читали мой пост, но в любом случае, см. здесь, почему защита CSRF необходима при хранении токена аутентификации в файлах cookie. https://stormpath.com/blog/where-to-store-your-jwts-cookies-vs-html5-web-storage –