Với mục đích bảo mật REST API bằng JWT, theo một số tài liệu (như hướng dẫn này và câu hỏi này ), JWT có thể được lưu trữ trong localStorage hoặc Cookies . Dựa trên sự hiểu biết của tôi:
- localStorage phải tuân theo XSS và nói chung không nên lưu trữ bất kỳ thông tin nhạy cảm nào trong đó.
- Với Cookie, chúng tôi có thể áp dụng cờ "httpOnly" để giảm nguy cơ XSS. Tuy nhiên, nếu chúng ta đọc JWT từ Cookie trên chương trình phụ trợ, thì chúng ta phải chịu CSRF.
Vì vậy, dựa trên tiền đề trên - sẽ tốt nhất nếu chúng ta lưu trữ JWT trong Cookie. Đối với mọi yêu cầu đến máy chủ, JWT sẽ được đọc từ Cookie và được thêm vào tiêu đề Ủy quyền bằng lược đồ Bearer. Sau đó máy chủ có thể xác minh JWT trong tiêu đề yêu cầu (trái ngược với việc đọc nó từ cookie).
Tôi hiểu có đúng không? Nếu vậy, cách tiếp cận trên có bất kỳ mối quan tâm bảo mật nào không? Hay thực sự chúng ta chỉ có thể sử dụng localStorage ngay từ đầu?