Bạn có sử dụng cả hai kỹ thuật xác thực phía Máy khách và Máy chủ cạnh nhau khi xác thực đầu vào từ người dùng, ví dụ: thông qua biểu mẫu liên hệ không?
Nếu vậy, nó có thực sự cần thiết? Bạn có quá kỹ thuật?
Bạn có sử dụng cả hai kỹ thuật xác thực phía Máy khách và Máy chủ cạnh nhau khi xác thực đầu vào từ người dùng, ví dụ: thông qua biểu mẫu liên hệ không?
Nếu vậy, nó có thực sự cần thiết? Bạn có quá kỹ thuật?
Câu trả lời:
Vâng, và bạn nên.
Điều này duy trì phản hồi của người dùng ngay lập tức mà không bị lãng phí bài đăng trong khi cũng bảo vệ chống lại người dùng vô hiệu hóa JavaScript.
Đây là cách điều khiển xác thực ASP.NET hoạt động.
Nó chắc chắn không phải là kỹ thuật quá mức như sử dụng cái này mà không có cái kia có nhược điểm.
Nếu vậy, nó có thực sự cần thiết?
Đúng.
Bạn có quá kỹ thuật?
Không.
Xác thực giao diện người dùng có thể cung cấp phản hồi ngay lập tức nếu đó là một giao diện phong phú.
Back-end có thể được sử dụng bởi nhiều front-end. Và đó là xác nhận duy nhất cho gói dự phòng chỉ có HTML (không có javascript).
Một trong những nguyên tắc cơ bản đầu tiên mà tôi học được về bảo mật là tin tặc sẽ không bao giờ sử dụng giao diện người dùng của bạn.
Bất kỳ xác thực phía máy khách nào thường có thể dễ dàng được bỏ qua trong các ứng dụng web nếu chúng có phiên bản cục bộ của biểu mẫu của bạn và sau đó gửi lại cho máy chủ của bạn.
Xác thực phía máy khách là điều tuyệt vời để cải thiện trải nghiệm người dùng của bạn và giảm các chuyến đi khứ hồi không cần thiết đến máy chủ để thực hiện xác thực.
Xác nhận phía máy chủ nên ở mức tối thiểu.
Và đối với đầu vào có khả năng sai, bạn cũng nên thêm kiểm tra phía máy khách ..
Ví dụ: kiểm tra xem email có được định dạng chính xác ở cả phía máy khách và máy chủ hay không nhưng kiểm tra xem nó có duy nhất có thể là kiểm tra phía máy chủ không.
Vâng, đó không phải là một ý tưởng tồi để sử dụng cả hai. Nếu lỗi đầu vào của người dùng đơn giản có thể bị bắt ở phía máy khách thì việc thông báo cho người dùng về những lỗi đó trước khi gửi dữ liệu và xử lý lỗi máy chủ của bạn là điều hợp lý. Ví dụ: nếu người dùng đã nhập một cái gì đó không giống địa chỉ email trong trường 'email' hoặc nhập một chuỗi chỉ dài 5 ký tự trong trường mật khẩu và bạn biết rằng trang web của bạn yêu cầu mật khẩu phải dài ít nhất 6 ký tự bạn nên nói với người dùng về nó trước khi gửi bất cứ điều gì đến máy chủ.
Điều quan trọng là cũng phải sao chép chính xác cùng một xác thực trên máy chủ vì 2 lý do: 1) nếu người dùng bị tắt Javascript thì sao?
2) Người dùng đã cố tình bỏ qua xác thực phía máy khách của bạn, điều này thực sự dễ dàng.