З метою захисту API REST за допомогою JWT, згідно з деякими матеріалами (наприклад, цим посібником та цим запитанням ), JWT може зберігатися як у localStorage, так і у файлах cookie . Виходячи з мого розуміння:
- localStorage піддається XSS і, як правило, не рекомендується зберігати в ній конфіденційну інформацію.
- За допомогою файлів cookie ми можемо застосувати позначку "httpOnly", яка зменшує ризик виникнення XSS. Однак якщо ми хочемо прочитати JWT з файлів cookie у серверній системі, тоді ми підлягаємо CSRF.
Отже, виходячи з вищезазначеної передумови - найкраще буде зберігати JWT у файлах cookie. На кожному запиті до сервера JWT буде зчитуватися з файлів cookie та додаватися до заголовка авторизації за допомогою схеми Bearer. Потім сервер може перевірити JWT у заголовку запиту (на відміну від читання його з файлів cookie).
Чи правильно розумію моє розуміння? Якщо так, то чи має вищезазначений підхід питання щодо безпеки? Або насправді ми можемо просто піти, використовуючи localStorage, насамперед?