Bảo mật 22/09/2026 6 phút

JWT mổ xẻ: header.payload.signature — vì sao nó được KÝ chứ không MÃ HOÁ

Rất nhiều người tưởng JWT giấu kín dữ liệu vì thấy chuỗi dài loằng ngoằng. Thực ra payload chỉ là Base64URL — ai chặn được cũng giải ra đọc. Bài này tự dựng JWT bằng python hmac, đo output thật: giải ngược header/payload, xác minh chữ ký HMAC-SHA256, đổi role thành admin bị bắt vì chữ ký sai, và tấn công alg=none bị từ chối.

Lập trình 22/09/2026 7 phút

JWT: chữ ký bảo vệ token khỏi sửa đổi, và bẫy alg=none biến verifier thành kẻ phản bội

JWT cho phép server tin một token mà không cần tra DB — nhờ chữ ký. Nhưng chữ ký chỉ bảo vệ khi bạn verify đúng. Bài này tự cài JWT HS256 trong Go và tái hiện thật: sửa payload role=admin mà không có secret để ký lại thì bị phát hiện ngay (chữ ký không khớp); nhưng một verifier ngây thơ TIN trường alg trong token sẽ bị bẫy alg=none qua mặt — chấp nhận token giả không chữ ký. Verify đúng phải ép thuật toán mong đợi.

Spring 26/07/2026 8 phút

JWT không mã hoá gì cả và không thu hồi được — ba câu hỏi phải trả lời trước khi bỏ session

JWT như vòng đeo tay lễ hội dán niêm: ai cũng đọc được chữ in trên đó, không giả được, nhưng cổng đã phát thì không thu lại được tới khi hết hạn. Session như vé gửi đồ. Đo bốn kiểu token giả bị chặn, chi phí ký/xác minh, và vì sao không thu hồi được là vấn đề thật.