Mật khẩu là nguồn phức tạp
Mật khẩu kéo theo cả một chuỗi tính năng phải xây và bảo trì: reset password, verify email, policy độ mạnh, hash an toàn. Mỗi phần là một bề mặt tấn công.
Xác thực không mật khẩu
Thay vào đó, template dùng ba cách:
- Google OAuth — hầu hết người dùng Việt Nam đã có tài khoản Google.
- Email OTP — mã 6 chữ số gửi về hộp thư, có hiệu lực 5 phút.
- Passkey — đăng nhập bằng vân tay, khuôn mặt hoặc khóa bảo mật.
Không có mật khẩu nghĩa là không có danh sách mật khẩu để bị đánh cắp.
Bảo vệ thêm
- Khóa tài khoản: 5 lần nhập sai OTP trong 10 phút sẽ khóa 15 phút.
- Captcha: Cloudflare Turnstile chặn bot trên các endpoint OTP.
- Rate limit: giới hạn theo IP, lưu trong database để dùng chung giữa các instance.
Mọi lớp bảo vệ đều tắt khi không cấu hình key — template không bao giờ crash vì thiếu tích hợp tùy chọn.