Giao diện người dùng phản ứng với REST API dưới dạng chương trình phụ trợ, ủy quyền của JWT, nhưng cách xử lý phiên? Ví dụ sau khi đăng nhập, tôi nhận được mã thông báo JWT từ REST, nếu tôi lưu nó vào localStorage, tôi dễ bị XSS, nếu tôi lưu nó vào Cookies, cùng một vấn đề chỉ khi không thiết lập HttpOnly, nhưng phản ứng không thể đọc HttpOnly Cookies (tôi cần để đọc cookie để lấy jwt từ nó, và sử dụng jwt này với các yêu cầu còn lại), tôi cũng không đề cập đến vấn đề CSRF, nếu bạn sử dụng REST làm backend, bạn không thể sử dụng CSRF Token.Giao diện người dùng phản ứng và API REST, CSRF
Kết quả là phản ứng với REST có vẻ như giải pháp tồi và tôi cần suy nghĩ lại kiến trúc của mình, cách thức như thế nào? Có thể cung cấp cho người dùng ứng dụng phản ứng an toàn của bạn những gì có tất cả logic nghiệp vụ được xử lý trên REST API mà không sợ mất dữ liệu của họ?
Cập nhật:
Theo như tôi hiểu, có khả năng để làm điều này:
- Phản ứng làm cho AJAX cuộc gọi đến API REST
- Phản ứng được JWT token từ REST của
- React viết httponly cookie
- Do phản ứng không thể đọc cookie httponly, chúng tôi sử dụng nó như trong tất cả cuộc gọi REST của chúng tôi, nơi chúng tôi cần xác thực ication
- REST của các cuộc gọi kiểm tra XMLHttpRequest tiêu đề, một số loại bảo vệ CSRF
- bên REST của séc cho cookie, đọc JWT từ nó và làm công cụ
Tôi có thiếu kiến thức lý thuyết ở đây là gì, nhưng có vẻ logic và khá an toàn, nhưng tôi vẫn cần câu trả lời cho câu hỏi của tôi và phê duyệt "quy trình làm việc" này.
trước tiên .. nếu bạn đang sử dụng mã thông báo JWT để xác thực, tại sao bạn thậm chí muốn đọc nó trên giao diện người dùng. Nó phải là http chỉ và bảo mật .... thứ hai .. Có thể sử dụng mã thông báo CSRF với REST. Để tham khảo, bạn có thể xem hướng dẫn của OWASP. Hy vọng điều này sẽ giúp https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)_Prevention_Cheat_Sheet –
@TasmineRout nhưng làm thế nào tôi có thể đọc nó trên chương trình phụ trợ? Ví dụ tôi lấy phần còn lại api để có được JWT, làm thế nào tôi có thể đọc và lưu nó không phải trên lối vào? – MyMomSaysIamSpecial
Ngoài ra, theo như tôi hiểu câu trả lời của bạn về CSRF, có khả năng "bảo mật" các yêu cầu và phản hồi của bạn bằng cách chỉ kiểm tra tiêu đề XMLHttpRequest? Ngoài ra, nó cho biết những gì bạn có thể thêm tiêu đề của riêng bạn và kiểm tra nó trong yêu cầu, nhưng tại sao nó an toàn? Tại sao tin tặc không thể sửa đổi các tiêu đề yêu cầu của anh ta và kiểm tra thông tin của tôi? – MyMomSaysIamSpecial