手机验证码验证方式
在手机验证码验证业务中,后端和客户端在验证验证码时通常有两种选择:
-
使用验证码 ID
在这种情况下,后端会向客户端返回一个验证码 ID。客户端提交验证码时,还需要同时提交此 ID。后端根据 ID 查询数据库,获取相应的验证码进行验证。
-
不使用验证码 ID
客户端直接提交验证码,后端直接查询数据库中时间最新的验证码进行验证。
最佳实践
两种方式都可行,但一般情况下推荐使用 验证码 ID 的方式。其原因是:
防盗刷
验证码 ID 可以与防盗刷措施结合使用。例如,服务端可以记录每个验证码 ID 的尝试验证次数。如果失败次数超过指定阈值,则需要客户端重新验证。
场景隔离
验证码 thường được tạo ra cho các phân cảnh cụ thể (ví dụ: đăng ký người dùng, đặt lại mật khẩu, xác nhận giao dịch). Việc sử dụng ID sẽ đảm bảo rằng mã xác minh cho một phân cảnh không thể được sử dụng cho một phân cảnh khác.
Quy trình xác minh
Quy trình xác minh thường bao gồm ba bước:
- Máy chủ trả về thông báo cuộn (Token) và thông tin captcha cho máy khách.
- Máy khách gửi yêu cầu với token và thông tin do người dùng nhập.
- Máy chủ trả về vé (ticket) và gửi tin nhắn SMS đến người dùng.
- Máy khách gửi yêu cầu với ticket và mã xác minh đã nhận được.
Mở rộng bảo mật
Ngoài ra, bạn có thể áp dụng các chính sách bảo mật bổ sung, chẳng hạn như giới hạn số lần thử xác minh cho cùng một token/ticket.