W celu zabezpieczenia REST API za pomocą JWT, zgodnie z niektórymi materiałami (takimi jak ten przewodnik i to pytanie ), JWT może być przechowywany w localStorage lub Cookies . Na podstawie mojego zrozumienia:
- localStorage podlega XSS i generalnie nie zaleca się przechowywania w nim żadnych poufnych informacji.
- Za pomocą plików cookie możemy zastosować flagę „httpOnly”, która zmniejsza ryzyko XSS. Jeśli jednak mamy odczytać token JWT z plików cookie na zapleczu, wówczas podlegamy CSRF.
Opierając się więc na powyższej przesłance - najlepiej będzie, jeśli będziemy przechowywać JWT w plikach Cookies. Przy każdym żądaniu do serwera token JWT zostanie odczytany z plików Cookies i dodany w nagłówku Authorization za pomocą schematu Bearer. Serwer może następnie zweryfikować token JWT w nagłówku żądania (w przeciwieństwie do odczytywania go z plików cookie).
Czy moje rozumienie jest prawidłowe? Jeśli tak, czy powyższe podejście ma jakiekolwiek obawy dotyczące bezpieczeństwa? A może w pierwszej kolejności możemy po prostu uciec od używania localStorage?