新增可變更密碼的知名網址,協助使用者輕鬆變更密碼

將對 /.well-known/change-password 提出的要求重新導向至變更密碼網址

設定從 /.well-known/change-password 重新導向至網站的變更密碼頁面。這樣一來,密碼管理工具就能直接將使用者導向該頁面。

簡介

如你所知,密碼並非管理帳戶的最佳方式。幸好,WebAuthn 等新興技術和一次性密碼等技術,有助於我們朝著無密碼的世界邁進。不過,這些技術仍在開發中,不會快速改變。許多開發人員至少在未來幾年內,仍需要處理密碼。在等待新興技術和方法普及之前,我們至少可以讓密碼更容易使用。

最好的做法是提供更完善的密碼管理工具支援。

密碼管理工具的優點

密碼管理工具可內建於瀏覽器,或以第三方應用程式的形式提供。他們可以透過多種方式協助使用者:

自動填入正確輸入欄位的密碼:即使網站未針對這項功能進行最佳化,部分瀏覽器仍可透過啟發式搜尋找到正確的輸入內容。網頁開發人員可以透過正確註解 HTML 輸入標記,協助密碼管理工具。

防範網路釣魚攻擊:密碼管理工具會記住密碼的記錄位置,因此密碼只會在適當的網址中自動填入,不會在網路釣魚網站中填入。

產生不重複的高強度密碼:由於密碼管理工具會直接產生及儲存不重複的高強度密碼,使用者不必記住密碼的任何一個字元。

使用密碼管理工具產生及自動填入密碼,可為網站提供良好的服務,但考量到密碼的生命週期,在需要時更新密碼,與產生及自動填入密碼一樣重要。為了妥善運用這項功能,密碼管理工具會新增以下新功能:

偵測有安全疑慮的密碼並建議更新:密碼管理工具可偵測重複使用的密碼、分析這些密碼的熵值和弱點,甚至偵測可能遭到洩漏的密碼,或從 Have I Been Pwned 等來源取得已知不安全的密碼。

密碼管理工具可提醒使用者有問題的密碼,但要求使用者從首頁前往變更密碼頁面,再加上實際變更密碼的程序 (各網站的程序不同),使用者會遇到許多阻礙。如果密碼管理工具可以直接將使用者導向變更密碼網址,將會更為方便。這時可靠的密碼變更網址就派上用場。

只要保留可將使用者重新導向至變更密碼頁面的知名網址路徑,網站就能輕鬆將使用者重新導向至正確的變更密碼頁面。

設定「變更密碼的常用網址」

建議使用 .well-known/change-password 做為變更密碼的知名網址。您只需設定伺服器,將 .well-known/change-password 要求重新導向至網站的變更密碼網址即可。

舉例來說,假設您的網站是 https://example.com,變更密碼的網址是 https://example.com/settings/password。您只需設定伺服器,將 https://example.com/.well-known/change-password 的要求重新導向至 https://example.com/settings/password。就是這麼簡單!如要重新導向,請使用 HTTP 狀態碼 302 Found303 See Other307 Temporary Redirect

或者,您也可以使用 http-equiv="refresh".well-known/change-password 網址中提供 HTML 和 <meta> 標記。

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

查看變更密碼頁面的 HTML

這項功能的目標是協助使用者更順暢地管理密碼生命週期。您可以採取兩種做法,讓使用者無縫更新密碼:

  • 如果變更密碼表單需要目前密碼,請將 autocomplete="current-password" 新增至 <input> 標記,協助密碼管理工具自動填入密碼。
  • 針對新密碼欄位 (在許多情況下,這會是兩個欄位,用於確保使用者已正確輸入新密碼),請將 autocomplete="new-password" 新增至 <input> 標記,協助密碼管理工具建議產生的密碼。

如要進一步瞭解,請參閱登入表單最佳做法

實際應用

範例

多虧 Apple Safari 的導入/.well-known/change-password 已在部分主要網站上推出一段時間:

歡迎你親自體驗,並在自己的裝置上試試看!

瀏覽器相容性

自 2019 年起,Safari 就支援用於變更密碼的已知網址。Chrome 的密碼管理工具將從 86 以上版本開始支援這項功能 (預計於 2020 年 10 月下旬發布穩定版),其他以 Chromium 為基礎的瀏覽器也可能會跟進。Firefox 認為值得實施,但截至 2020 年 8 月,尚未表示計畫實施。

Chrome 的密碼管理工具行為

讓我們來看看 Chrome 的密碼管理工具如何處理有安全疑慮的密碼。

Chrome 的密碼管理工具可檢查是否有密碼外洩的情形。使用者只要前往 about://settings/passwords,即可針對儲存的密碼執行「檢查密碼」,並查看建議更新的密碼清單。

Chrome 的「檢查密碼」功能

在建議更新的密碼旁邊,按一下「變更密碼」按鈕,瀏覽器就會:

  • 如果 /.well-known/change-password 已正確設定,請開啟網站的變更密碼頁面。
  • 如果未設定 /.well-known/change-password,且 Google 不知道備用網址,系統會開啟網站首頁。
如果伺服器傳回 200 OK,但 /.well-known/change-password 不存在,該怎麼辦?

密碼管理工具會在實際將使用者轉送至這個網址之前,先傳送要求給 /.well-known/change-password,藉此判斷網站是否支援變更密碼的知名網址。如果要求傳回 404 Not Found,表示網址無法使用,但 200 OK 回應不一定表示網址可用,因為有幾種極端情況:

  • 當伺服器端算繪網站沒有內容,但有 200 OK 時,會顯示「找不到」。
  • 在重新導向至「找不到」頁面後,如果沒有任何內容,伺服器端算繪網站會以 200 OK 回應。
  • 單頁應用程式會使用 200 OK 回應殼層,並在沒有內容時在用戶端顯示「找不到」頁面。

在這些極端情況下,使用者會被轉送至「找不到」頁面,這會造成混淆。

因此,我們建議採用標準機制,透過要求隨機網頁,判斷伺服器是否已設定為在沒有內容時傳回 404 Not Found。事實上,網址也已保留:/.well-known/resource-that-should-not-exist-whose-status-code-should-not-be-200。舉例來說,Chrome 會使用這個網址路徑,判斷是否可以預先從 /.well-known/change-password 取得正確的變更密碼網址。

部署 /.well-known/change-password 時,請確認伺服器會針對任何不存在的內容傳回 404 Not Found

意見回饋

如果您對規格有任何意見,請向規格存放區提交問題。

資源

相片來源:Matthew BrodeurUnsplash 網站上提供