Spring 27/07/2026 8 phút

OAuth2 không phải để đăng nhập — nó là chìa khoá valet, và dùng nhầm nó để xác thực là một lỗ hổng

Access token của OAuth2 như chìa khoá valet: cho phép làm một việc cụ thể mà không phải là bạn; OIDC mới kẹp thêm tấm thẻ căn cước (id_token) trả lời 'ai'. Luồng duy nhất còn đúng năm 2026, PKCE, đăng nhập Google trong Spring, và ánh xạ vào người dùng.

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.

Spring 23/07/2026 8 phút

BCrypt chậm 52ms là TÍNH NĂNG, và nó lặng lẽ bỏ qua mọi ký tự sau byte thứ 72

Băm mật khẩu như một ổ khoá một chiều nặng và quay chậm có chủ đích: kiểm được chìa nhưng không đọc ngược ra chìa. Đo BCrypt theo từng mức cost, giới hạn 72 byte, DelegatingPasswordEncoder, và cách đổi thuật toán mà không bắt ai đặt lại mật khẩu.

Spring 22/07/2026 7 phút

Thêm một phụ thuộc là mọi endpoint bị khoá — và Spring Security chỉ là 15 bộ lọc xếp hàng, không phép màu

Spring Security như một bộ lọc nước nhiều tầng: nước qua một dãy lõi cố định, mỗi lõi lọc đúng một thứ, sai thứ tự là hỏng cả dãy — và cái van cuối mặc định ĐÓNG. Mười lăm bộ lọc in ra thật, năm header tự bật, và cấu hình đúng thứ tự.