Anh ơi, em dùng JWT nhưng cảm thấy k an toàn lắm, giả sử hacker chôm được token, dùng JWT thực hiện request chuyển tiền, đương nhiên JWT chưa hết expired time, liệu có cách nào bảo mật tốt hơn JWT người ta đang dùng k ạ
Share
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
Hiện tại thì anh đang dùng sha256 token, token này sẽ được lưu vào db, trong trường hợp user phát hiện ra mình bị hack có thể logout toàn bộ account, tương đương với việc xoá token khỏi cơ sở dữ liệu, điều này sẽ làm token bị vô hiệu hoá. Tuy nhiên cái giá phải trả là hiệu năng sẽ bị giảm vì mỗi lần request là 1 lần gọi vào db để lấy thông tin token.
Hi A Dũng, nếu mình dùng token để lưu vào db thì sẽ tương tự như cách lưu sessionId ở phía DB đúng ko ạ? Trong t/h mình lưu token vào db thì a có hướng giải quyết nào cải thiện hiệu năng của việc check valid token ko ạ? E cảm ơn a đã chia sẻ ạ.
1. Anh không rõ sessionId của em là gì nhưng nếu theo ý hiểu sessionId là 1 dạng token dành cho 1 phiên trong 1 khoảng thời gian thì anh đang thấy là có thể giống hoặc khác nhau. Giống ở chỗ là đều có thể dùng để xác thực được, còn khác là từ token em có thể tạo ra được sessionId và sessionId có thời gian tồn tại ngắn hơn và có thể cho 1 thiết bị.
2. Cách tăng hiệu năng đơn giản nhất là dùng redis hoặc các memory cache engine để lưu token map với userId em ạ.
Em cảm ơn a đã chia sẻ.
Nếu nói đến bị hacker lấy được JWT rồi thì khó lắm. Vì nếu dùng JWT hoặc token thì hacker lấy được thì vẫn bị lỗi bảo mật thôi.
Về mặt an toàn thì người phân tích nghiệp vụ, dev…. phải luôn luôn nói với mình rằng dữ liệu lưu ở trên client không bao giờ là an toàn, nó hoàn toàn có thể bị ăn cắp bởi hacker.. (Đến dữ liệu lưu trên server nhiều khi còn bị lộ nữa cơ mà)
Còn cách thức phòng, giảm rủi do thì có nhiều cách.
Đây là 1 số cách xưa mình phát triển service authen mình đã triển khai.