В целях обеспечения безопасности REST API с использованием JWT, согласно некоторым материалам (например, и question), JWT может быть сохранен в localStorage или Cookies. Основываясь на моем понимании:
- localStorage подвергается XSS и обычно не рекомендуется хранить в нем какую-либо конфиденциальную информацию.
- С Cookies мы можем применить флаг "httpOnly", который уменьшает риск XSS. Однако, если мы хотим прочитать JWT из Cookies на бэкэнд, мы затем подвергаемся CSRF.
Таким образом, исходя из вышеуказанной предпосылки - будет лучше, если мы сохраним JWT в Cookies. При каждом запросе на сервер JWT будет считываться из файлов cookie и добавляться в заголовок авторизации с использованием схемы переноса. Затем сервер может проверить JWT в заголовке запроса (в отличие от чтения его из файлов cookie).
Правильно ли я понимаю? Если да, имеет ли вышеупомянутый подход какие-либо соображения безопасности? Или на самом деле мы можем просто уйти с использованием localStorage в первую очередь?