Một bài viết gây tranh luận trên mạng đã chỉ trích việc sử dụng JSON Web Tokens (JWT) để duy trì phiên đăng nhập người dùng. Tác giả lập luận rằng JWT không được thiết kế cho mục đích này, không an toàn, và tồn tại giải pháp tốt hơn là cookie session truyền thống.
Tại sao JWT không phù hợp cho session?
Theo bài viết, JWT chỉ nên dùng cho token siêu ngắn (dưới 5 phút). Trong khi đó, phiên đăng nhập thường kéo dài hàng giờ. Việc cố gắng tạo "stateless authentication" (xác thực không trạng thái) bằng JWT thực tế không khả thi nếu không có nguồn lực khổng lồ.
Các chuyên gia bảo mật cũng không tin tưởng vào đặc tả JWT gốc vì nó cho phép tạo token giả. Google (GOOGL) dùng JWT nhưng chỉ cho Single Sign On giữa các máy chủ, không phải cho session trên trình duyệt. Họ có đội ngũ chuyên gia riêng để xây dựng và duy trì phiên bản JWT an toàn hơn.
Giải pháp thay thế đã có sẵn
Tác giả khuyên dùng cookie session thông thường, vốn được tích hợp sẵn trong mọi web framework phổ biến. Đây là công nghệ cũ nhưng an toàn hơn nhiều. Nếu bạn cần token ngắn hạn, hãy dùng PASETO thay vì JWT.
Bài viết cũng cảnh báo không lưu token xác thực trong localStorage hay sessionStorage, vì dễ bị tấn công XSS. Đây là lời nhắc hữu ích cho cộng đồng lập trình Việt Nam khi xây dựng ứng dụng công nghệ và hệ thống AI cần bảo mật cao.






