Để an toàn, việc đăng nhập trong ứng dụng hiện tại của tôi không lưu trữ các tham số được truyền cho các phương thức đăng nhập hoặc đặt lại mật khẩu. Cuộc gọi nhật ký có một tham số tùy chọn điều khiển điều này, khi được đặt thành true, sẽ thay thế đối tượng tham số được lưu trữ bằng [Redacted]
. Chắc chắn, vì vậy tôi bỏ lỡ một ít dữ liệu, nhưng tôi có địa chỉ IP của họ và tôi không muốn mạo hiểm nhận được thứ gì đó nhạy cảm trong bản rõ.
Nếu bạn thực sự muốn đăng nhập loại điều này, tôi khuyên bạn nên đăng nhập một lần thử đăng nhập, bạn kiểm tra cơ sở dữ liệu cho người dùng có tên khớp với những gì bạn có trong trường tên người dùng và chỉ lưu trữ nếu bạn khớp. Nếu không, bạn chỉ cần lưu trữ nó dưới dạng "người dùng không xác định". Bạn có thể thích, kiểm tra xem giá trị này có chứa giá trị đó hay không, nhưng luôn có nguy cơ bạn nhận được các kết hợp như [Người dùng] [Mật khẩu] và [UserPas] [kiếm], trong trường hợp đó bạn có thể kiểm tra IP và suy luận rằng bạn đã vô tình lưu trữ bắt đầu mật khẩu của ai đó rõ ràng. Bạn có thể mở rộng nó thành [Người dùng] [Mật khẩu] và [UserPassword] [??], trong trường hợp đó bạn có thể thấy "đăng nhập không thành công bởi UserPassword" theo sau là "Đăng nhập thành công bởi người dùng" và suy luận tất cảmật khẩu của người dùng. Nói chung, để an toàn, tôi nói không đăng nhập tên người dùng trừ khi đăng nhập thành công.
Chỉnh sửa để thêm:
Hầu hết các đối số mà mọi người đang đăng để đăng nhập tên người dùng cho các lần đăng nhập thất bại, theo tôi, được xử lý tốt hơn thông qua các phương pháp khác.
Ví dụ, người ta nói rằng khi khách hàng hỏi "tại sao tôi không thể đăng nhập?", Tên người dùng đã đăng nhập sẽ cho phép bạn chỉ ra lỗi chính tả. Điều này là đúng, nhưng nó không đáng để mạo hiểm khi bắt mật khẩu; Tôi sẽ làm điều này bằng cách thay vào đó chuyển hướng người dùng trở lại biểu mẫu đăng nhập khi thất bại, làm nổi bật trường tên người dùng và sao chép lại bằng bất cứ điều gì họ đã nhập để họ có thể tự nhìn thấy.
Một lập luận khác là nó cho phép bạn xác định các nỗ lực hack; một chuỗi các lỗi đối với một tên người dùng cũng có thể là một nỗ lực để đánh cắp mật khẩu. Tôi sẽ làm điều này bằng cách có cột "BadLogins" trên bảng Người dùng, được tăng lên mỗi lần đăng nhập thất bại với tên người dùng khớp với người dùng này và được đặt lại về 0 khi đăng nhập thành công, sau khi nói với người dùng "đã có x những lần đăng nhập không thành công kể từ lần đăng nhập cuối cùng của bạn "và tư vấn cho họ phải làm gì nếu họ không nghĩ rằng những nỗ lực đó là từ họ. Nếu bạn muốn thực sự kỹ lưỡng, bạn có thể có một cột khác lưu trữ giá trị cuối cùng của cột BadLogins ngay cả sau khi đăng nhập thành công và / hoặc một cột lưu trữ giá trị cao nhất từ trước đến nay của cột này và / hoặc một cột có lưu trữ tổng số lần đăng nhập thất bại mà tài khoản này đã từng có.