将对 /.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
。
或者,您可以在您的 .well-known/change-password
网址中提供 HTML
使用<meta>
http-equiv="refresh"
。
<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
”已经在某些主流平台上使用
一段时间:
自己动手试试看,自己也一样!
浏览器兼容性
自从开始,Safari 就支持一个众所周知的密码更改网址 2019 年。 从版本 86 开始,Chrome 的密码管理器会开始支持该密码管理工具 (计划于 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
在重定向至“未找到”后显示的内容页面。 - 单页应用通过 shell 响应
200 OK
,并呈现“Not “已找到”页面。
对于这些极端情况,用户会被转到“未找到”这样 可能会让用户感到困惑
因此,我们提议
机制
确定服务器是否配置为以 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 Brodeur 提供,由 Unshot 提供