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

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

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

引言

如您所知,密碼並非管理帳戶的最佳方式。幸好,WebAuthn 等新技術和動態密碼等技術有助於我們更接近無密碼的世界。不過,這些技術仍在開發階段,且不會迅速改變。許多開發人員至少在接下來幾年仍需處理密碼。在我們等待新興技術和技術的隱密性的同時,我們也至少可以提供密碼容易使用的密碼。

其中一個理想的做法是為密碼管理工具提供更完善的支援。

密碼管理工具的說明

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

在正確的輸入欄位中自動填入密碼:即使網站並未針對這個用途進行最佳化,部分瀏覽器仍可透過啟發式演算法找到正確的輸入來源。網頁開發人員可以正確為 HTML 輸入標記加上註解,協助密碼管理工具。

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

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

使用密碼管理工具產生及自動填入密碼已經為網路提供服務,但考量到密碼的生命週期,在必要時更新密碼與產生和自動填入功能的重要性。為了有效運用,密碼管理工具現在新增了一項功能:

偵測有安全漏洞的密碼並建議更新:密碼管理工具可以偵測重複使用的密碼、分析密碼的熵和弱點,甚至會偵測可能外洩的密碼,或是已知有安全疑慮的密碼,例如「有人假冒」等。

密碼管理工具可以在密碼有問題時警告使用者,但要求使用者從首頁前往變更密碼頁面時,往往會發生許多阻礙,還得執行實際變更密碼程序 (視網站間而定)。如果密碼管理工具可以直接將使用者導覽至變更密碼網址,會比較簡單。這就是變更密碼的知名網址會派上用場。

網站可保留已知的網址路徑,將使用者重新導向至變更密碼頁面,方便該網站將使用者重新導向至正確位置變更密碼。

設定「用於變更密碼的知名網址」

建議使用 .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 網址透過 <meta> 標記提供 HTML。

<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/.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 不知道備用選項,請開啟網站首頁。
如果伺服器即使 /.well-known/change-password 不存在,也傳回 200 OK,該怎麼辦?

密碼管理工具會先傳送要求至 /.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 為例,Chrome 會使用這個網址路徑,判斷是否能事先預期從 /.well-known/change-password 取得正確的變更密碼網址。

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

意見回饋:

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

資源

相片來源:Matthew BrodeurUnsplash 網站上