將要求重新導向至 /.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 Found
、303 See
Other
或 307
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
使用者即可針對已儲存的密碼執行檢查密碼,並查看建議更新的密碼清單。
在建議更新的密碼旁按一下「變更密碼」按鈕後,瀏覽器將會執行以下操作:
- 如果
/.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 Brodeur 於 Unsplash 網站上