Bảo mật và quyền riêng tư
Thiết kế khôi phục mật khẩu mà không làm lộ tài khoản
Trang khôi phục mật khẩu có thể làm lộ việc một người có tài khoản dù câu chữ có vẻ trung tính. Hãy rà soát phản hồi, thời gian, giới hạn gửi, mã đặt lại và xử lý phiên trong cùng một quy trình.
Khôi phục mật khẩu phải giúp khách hàng hợp lệ lấy lại quyền truy cập mà không xác nhận tư cách thành viên cho người ngoài. Nhóm sản phẩm thường chỉ xem mẫu email. Khách hàng nên yêu cầu trình diễn toàn bộ luồng, gồm tài khoản không tồn tại, liên kết hết hạn và người tạm thời không truy cập được hộp thư.
Giữ phản hồi công khai trung tính
OWASP khuyến nghị dùng thông báo nhất quán cho tài khoản tồn tại và không tồn tại, đồng thời giữ thời gian phản hồi nhất quán.[2] Thông báo phù hợp cho biết hướng dẫn sẽ được gửi nếu thông tin khớp tài khoản. Không nên hứa chắc rằng email đã tồn tại.
Yêu cầu nhóm so sánh toàn bộ phản hồi người dùng quan sát được, không chỉ câu chính. Cần xem cách trả trạng thái, thông báo kiểm tra dữ liệu và thời gian phản hồi. Cách triển khai nên tránh kết thúc sớm khiến tài khoản không tồn tại có biểu hiện khác biệt. Không nên cam kết thời gian mạng hoàn toàn giống nhau.
Tách yêu cầu khỏi việc đặt lại
OWASP khuyến nghị mã đặt lại ngẫu nhiên, lưu trữ an toàn, dùng một lần và có hạn. Hướng dẫn cũng khuyên không thay đổi tài khoản trước khi nhận mã hợp lệ.[2] Yêu cầu ban đầu chỉ nhằm xin hướng dẫn, không phải quyền đổi mật khẩu hoặc khóa tài khoản.
Nên quy định thời hạn mã phù hợp với độ trễ chuyển thư và mức nhạy cảm của tài khoản. Sau khi hoàn tất, yêu cầu đăng nhập theo cách thông thường và có chính sách rõ ràng cho phiên hiện hữu. OWASP khuyến nghị thông báo sau khi đặt lại, đồng thời cho phép người dùng thu hồi phiên hoặc tự động thực hiện việc đó.[2]
Ví dụ giả định: dịch vụ học theo gói
Trong một dịch vụ học tập giả định, người đăng ký nhập địa chỉ email cũ. Trang trả cùng thông báo trung tính như khi nhập địa chỉ đã đăng ký. Liên kết hỗ trợ giải thích lựa chọn khôi phục mà không xác nhận địa chỉ nào thuộc tài khoản.
Sau đó người học nhận liên kết hợp lệ qua kênh đã thiết lập và đặt lại mật khẩu. Liên kết đã dùng không còn hoạt động. Buổi trình diễn cũng kiểm tra rằng yêu cầu lặp lại không làm ngập hộp thư. Đây là kết quả kiểm thử đề xuất, không phải bằng chứng về dịch vụ thực tế.
Rà soát ranh giới khôi phục
OWASP khuyến nghị kiểm soát việc gửi tự động quá mức và cảnh báo không khóa tài khoản chỉ vì nhận yêu cầu khôi phục.[2] Yêu cầu giới hạn tần suất vừa xử lý lạm dụng, vừa tránh biến yêu cầu ẩn danh thành cách đơn giản để chặn khách hàng.
- So sánh phản hồi cho tài khoản đã đăng ký và không tồn tại trong kiểm thử được phép.
- Kiểm tra thời hạn, tính dùng một lần và cách bảo vệ mã đặt lại.
- Không đưa bí mật đặt lại vào phân tích hành vi hoặc hồ sơ hỗ trợ thường lệ.
- Quy định thu hồi phiên và thông báo khách hàng sau khi hoàn tất.
- Có đường chuyển cấp hỗ trợ không tiết lộ việc tài khoản tồn tại.
Chuẩn bị khi kênh liên lạc không dùng được
Câu chữ trung tính có thể gây bối rối khi khách nhập sai địa chỉ. Hướng dẫn rõ hơn có ích nhưng không được phá vỡ quyền riêng tư tài khoản. Khôi phục khi mất kênh liên lạc đã thiết lập cần quy trình kiểm tra danh tính riêng. Hãy thống nhất quy trình trước khi ra mắt. Tránh lối bỏ qua nhanh của hỗ trợ trở thành phương án yếu hơn đăng nhập thông thường.