Giúp người dùng dễ dàng thay đổi mật khẩu bằng cách thêm một URL phổ biến để đổi mật khẩu

Chuyển hướng một yêu cầu tới /.well-known/change-password đến URL thay đổi mật khẩu

Thiết lập lệnh chuyển hướng từ /.well-known/change-password đến trang đổi mật khẩu của trang web. Việc này sẽ cho phép trình quản lý mật khẩu điều hướng người dùng của bạn trực tiếp vào trang đó.

Giới thiệu

Như bạn có thể biết, mật khẩu không phải là cách tốt nhất để quản lý tài khoản. May mắn thay, có những công nghệ mới nổi như WebAuthn và các kỹ thuật như mật khẩu một lần đang giúp chúng ta tiến gần hơn đến một thế giới không cần mật khẩu. Tuy nhiên, những công nghệ vẫn đang được phát triển và mọi thứ sẽ không thay đổi nhanh chóng. Nhiều nhà phát triển vẫn sẽ cần xử lý mật khẩu trong ít nhất vài lần tới năm. Trong khi chúng tôi đợi các công nghệ và kỹ thuật mới nổi là điều bình thường, ít nhất chúng tôi có thể làm cho mật khẩu dễ dùng hơn.

Một cách hiệu quả để làm việc này là hỗ trợ tốt hơn cho trình quản lý mật khẩu.

Cách trình quản lý mật khẩu trợ giúp

Trình quản lý mật khẩu có thể được tích hợp vào trình duyệt hoặc cung cấp dưới dạng ứng dụng bên thứ ba. Chúng có thể giúp người dùng theo nhiều cách:

Tự động điền mật khẩu cho trường nhập dữ liệu chính xác: Một số trình duyệt có thể tìm thấy thông tin đầu vào chính xác theo suy đoán ngay cả khi trang web không được tối ưu hoá cho việc này mục đích. Nhà phát triển web có thể giúp trình quản lý mật khẩu bằng cách chú thích HTML chính xác các thẻ đầu vào.

Ngăn chặn lừa đảo: Vì trình quản lý mật khẩu nhớ vị trí của mật khẩu đã ghi lại, mật khẩu chỉ có thể được tự động điền tại các URL thích hợp và không phải tại trang web lừa đảo trực tuyến.

Tạo mật khẩu mạnh và duy nhất: Vì mật khẩu mạnh và duy nhất do trình quản lý mật khẩu tạo và lưu trữ trực tiếp, nên người dùng không cần phải chỉ nhớ một ký tự duy nhất của mật khẩu.

Hiện đã có các hoạt động tạo và tự động điền mật khẩu bằng trình quản lý mật khẩu phân phối tốt cho web, nhưng xem xét vòng đời của chúng, việc cập nhật mật khẩu bất cứ khi nào cần thiết cũng quan trọng như việc tạo và tự động điền. Người nhận Hãy tận dụng đúng cách điều đó, trình quản lý mật khẩu sẽ thêm một tính năng mới:

Phát hiện các mật khẩu dễ bị tấn công và đề xuất cập nhật các mật khẩu đó: Trình quản lý mật khẩu có thể phát hiện các mật khẩu trùng lặp, phân tích entropy và điểm yếu của chúng, và thậm chí phát hiện các mật khẩu có thể đã bị lộ hoặc được biết là không an toàn từ các nguồn như Have I Been Pwned.

Một trình quản lý mật khẩu có thể cảnh báo người dùng về mật khẩu có vấn đề, nhưng sẽ có rất nhiều khó khăn trong việc yêu cầu người dùng điều hướng từ trang chủ sang thay đổi mật khẩu bên cạnh quá trình thực tế thay đổi mật khẩu (điều này khác nhau tuỳ theo trang web). Sẽ dễ dàng hơn nhiều nếu trình quản lý mật khẩu có thể hãy điều hướng người dùng đến thẳng URL thay đổi mật khẩu. Đây là nơi URL phổ biến để thay đổi mật khẩu sẽ hữu ích.

Đặt trước một đường dẫn URL phổ biến chuyển hướng người dùng đến thay đổi trang mật khẩu, trang web có thể dễ dàng chuyển hướng người dùng đến đúng nơi để thay đổi mật khẩu của mình.

Thiết lập "một URL phổ biến để thay đổi mật khẩu"

.well-known/change-password được đề xuất là một URL phổ biến cho việc thay đổi mật khẩu. Bạn chỉ cần để định cấu hình máy chủ nhằm chuyển hướng các yêu cầu đến .well-known/change-password vào URL thay đổi mật khẩu của trang web.

Ví dụ: giả sử trang web của bạn là https://example.com và thay đổi URL của mật khẩu là https://example.com/settings/password. Bạn chỉ cần đặt để máy chủ của bạn chuyển hướng yêu cầu https://example.com/.well-known/change-password thành https://example.com/settings/password Vậy là xong. Để chuyển hướng, hãy sử dụng mã trạng thái HTTP 302 Found, 303 See Other hoặc 307 Temporary Redirect.

Ngoài ra, bạn có thể phân phát HTML tại URL .well-known/change-password bằng sử dụng một thẻ <meta> http-equiv="refresh".

<meta http-equiv="refresh" content="0;url=https://example.com/settings/password">

Truy cập lại HTML của trang đổi mật khẩu

Mục tiêu của tính năng này là giúp vòng đời mật khẩu của người dùng linh hoạt hơn. Bạn có thể thực hiện hai việc để cho phép người dùng cập nhật mật khẩu của họ mà không cần sự phiền hà:

  • Nếu biểu mẫu thay đổi mật khẩu của bạn cần mật khẩu hiện tại, hãy thêm autocomplete="current-password" vào thẻ <input> để giúp tạo mật khẩu tự động điền thông tin đó.
  • Đối với trường mật khẩu mới (trong nhiều trường hợp, có 2 trường để đảm bảo rằng người dùng đã nhập chính xác mật khẩu mới), hãy thêm autocomplete="new-password" vào thẻ <input> để giúp tạo mật khẩu người quản lý đề xuất một mật khẩu đã tạo.

Tìm hiểu thêm tại Biểu mẫu đăng nhập tốt nhất .

Cách ứng dụng được sử dụng trong thực tế

Ví dụ

Nhờ có sự hỗ trợ của Apple Safari implementation (triển khai), /.well-known/change-password, đã có trên một số chính sách các trang web trong một thời gian:

Hãy thử tự mình trải nghiệm và làm tương tự!

Khả năng tương thích với trình duyệt

Một URL phổ biến giúp thay đổi mật khẩu đã được hỗ trợ trong Safari kể từ năm 2019. Trình quản lý mật khẩu của Chrome bắt đầu hỗ trợ trình quản lý mật khẩu này từ phiên bản 86 trở đi (dự kiến phát hành bản ổn định vào cuối tháng 10 năm 2020) và các trình duyệt khác dựa trên Chromium. Firefox coi công cụ này đáng giá triển khai, nhưng chưa cho biết họ có kế hoạch thực hiện việc này kể từ tháng 8 năm 2020.

Hoạt động của trình quản lý mật khẩu của Chrome

Hãy cùng xem cách trình quản lý mật khẩu của Chrome xử lý các mật khẩu dễ bị tấn công.

Trình quản lý mật khẩu của Chrome có thể kiểm tra xem có mật khẩu nào bị lộ không. Bằng cách đi theo chỉ dẫn để about://settings/passwords người dùng có thể chạy tính năng Kiểm tra mật khẩu so với các mật khẩu đã lưu trữ mật khẩu và xem danh sách mật khẩu được đề xuất để cập nhật.

Chức năng Kiểm tra mật khẩu trên Chrome

Bằng cách nhấp vào nút Thay đổi mật khẩu bên cạnh mật khẩu bạn muốn thay đổi được cập nhật, trình duyệt sẽ:

  • Mở trang thay đổi mật khẩu của trang web nếu /.well-known/change-password là được thiết lập đúng cách.
  • Mở trang chủ của trang web nếu bạn chưa thiết lập /.well-known/change-password và Google không biết phương án dự phòng.
Điều gì sẽ xảy ra nếu máy chủ trả về 200 OK ngay cả /.well-known/change-password không tồn tại?

Trình quản lý mật khẩu cố gắng xác định xem một trang web có hỗ trợ URL phổ biến cho thay đổi mật khẩu bằng cách gửi yêu cầu đến /.well-known/change-password trước thực sự chuyển tiếp người dùng đến URL này. Nếu yêu cầu trả về 404 Not Found rõ ràng là URL không truy cập được, nhưng phản hồi 200 OK thì không nhất thiết có nghĩa là URL đó vẫn truy cập được vì có một số trường hợp hiếm gặp:

  • Trang web hiển thị phía máy chủ hiển thị thông báo "Không tìm thấy" khi không có nội dung nhưng với 200 OK.
  • Trang web hiển thị phía máy chủ phản hồi bằng 200 OK khi không có nội dung sau khi chuyển hướng đến trang "Không tìm thấy" .
  • Một ứng dụng trang đơn phản hồi bằng shell bằng 200 OK và hiển thị thông báo "Không phải" đã tìm thấy" ở phía máy khách khi không có nội dung.

Đối với các trường hợp hiếm gặp này, người dùng sẽ được chuyển tiếp đến trạng thái "Không tìm thấy" và điều đó sẽ là nguyên nhân gây nhầm lẫn.

Đó là lý do có một tiêu chuẩn được đề xuất cơ chế để xác định xem máy chủ có được định cấu hình để phản hồi với 404 Not Found hay không khi thực sự không có nội dung bằng cách yêu cầu một trang ngẫu nhiên. Trên thực tế, URL cũng được đặt trước: /.well-known/resource-that-should-not-exist-whose-status-code-should-not-be-200. Chẳng hạn như Chrome sử dụng đường dẫn URL này để xác định xem có thể thay đổi đúng URL mật khẩu từ /.well-known/change-password trước.

Khi bạn triển khai /.well-known/change-password, hãy đảm bảo rằng máy chủ trả về 404 Not Found cho bất kỳ nội dung nào không tồn tại.

Phản hồi

Nếu bạn có bất kỳ phản hồi nào về thông số kỹ thuật, vui lòng báo cáo sự cố tới thông số kỹ thuật kho lưu trữ.

Tài nguyên

Ảnh của Matthew Brodeur trên Unsplash