针对自动更改密码功能进行了优化

优化您的网站,以便 Google 密码管理工具可以自动更改已泄露的凭据的密码。

自动更改密码功能可帮助美国境内的 Chrome 桌面版用户快速更新在公开数据泄露事件中泄露的密码。当 Google 检测到已保存的密码泄露时,Google 密码管理工具可以生成安全系数高且独一无二的替代密码,并为您的用户更新该密码。

该功能会在后台操作,为用户填写网站的密码更改表单,并使用安全系数高的新密码将其保存到 Google 密码管理工具中。这样一来,用户就无需手动更新,有助于确保账号安全。

用户体验

当用户使用已泄露的密码登录受支持的网站时,Google 密码管理工具可能会主动提出帮用户更改密码。如果用户接受,系统会开始自动更改密码流程。

自动更改密码功能会浏览网站并为用户完成密码更新。

用户可以在发生这种情况时取消。该流程完成后,新密码会保存到用户的 Google 密码管理工具中并关联到其 Google 账号,因此可在所有已同步的设备上使用。

如何识别泄露的密码

当用户保存密码或登录网站时,Chrome 会检查用户名和密码是否出现在公开的数据泄露事件中。

为此,Chrome 会使用可保护隐私的流程,将您的加密凭据与已知的数据泄露列表进行比较。如果找到匹配项,Chrome 会通知用户密码已泄露。Google 绝不会看到实际的用户名或密码。如需了解详情,您可以前往 Google 安全网志,了解 Google 如何帮助您保护账号免遭数据泄露。

被盗密码列表由公开数据泄露事件和安全分析师创建。

针对自动更改密码功能进行优化

如需针对自动密码更改功能优化网站,并提高与 Google 密码管理工具和其他工具的兼容性,请实现以下 Web 标准和最佳实践。这些更改有助于浏览器和密码管理工具可靠地与密码相关表单进行交互。

使用众所周知的更改密码网址

使用路径 /.well-known/change-password 宣传密码更改页面的位置。当需要更新密码时,此网址有助于浏览器和密码管理工具(例如 Google 密码管理工具)快速将用户引导至正确的位置。

例如:

https://yourdomain.com/.well-known/change-password 

这有助于改善用户体验并支持自动更改密码等功能。支持此路径可提高您的网站与自动化工具的兼容性。

网址 /.well-known/change-password 必须重定向到密码更改表单。

您可以通过以下两种方式之一来实现重定向:

  • 服务器端(推荐)
    • 将您的 Web 服务器(例如 Apache 或 Nginx)配置为使用 HTTP 状态代码 302、303 或 307 发出临时重定向。
    • 避免使用 301(永久重定向),以免目标网址发生变化。
    • 如果用户未登录,重定向可以先将用户带到登录流程。
  • HTML 元刷新(替代方法)

    • 在执行客户端重定向的知名路径中提供基本 HTML 页面:
    <!DOCTYPE html> <html> <head>   <meta http-equiv="refresh" content="0;url=https://example.com/settings/password">   <title>Redirecting...</title> </head> <body>   <p>Redirecting you to the change password page...</p> </body> </html> 
    • /.well-known/change-password 路径不得托管实际的密码更改表单。它仅用于发现和重定向。 如需了解详情,请参阅用于更改密码的知名网址

如需详细了解更改密码的知名网址,请参阅通过添加用于更改密码的知名网址,帮助用户轻松更改密码一文。

在表单中使用自动补全属性

浏览器和密码管理器使用 autocomplete 属性来了解表单字段的用途。此属性有助于提高自动填充的准确性,支持密码生成,并且是自动密码更改等功能可靠运行所必需的。

使用以下 autocomplete 值:

用途 常见用法
username 标识账号用户名 登录、注册、更改密码
current-password 用于输入现有密码的字段 登录、更改密码
new-password 用于输入新密码的字段 注册、密码更改、重置

以下代码段展示了一个包含 autocomplete 值的表单示例:

... <form action="/change-password-handler" method="post">   <div>     <label for="current-pw">Current password:</label>     <input type="password" id="current-pw" name="current-password"            autocomplete="current-password" required>   </div>    <div>     <label for="new-pw">New password:</label>     <input type="password" id="new-pw" name="new-password"            autocomplete="new-password" required minlength="8"            aria-describedby="password-constraints">     <div id="password-constraints">Minimum 8 characters.</div>   </div>    <div>     <label for="confirm-pw">Confirm new password:</label>     <input type="password" id="confirm-pw" name="confirm-password"            autocomplete="new-password" required minlength="8">   </div>    <button type="submit">Change password</button> </form> ... 

其他最佳实践

请遵循这些准则,以提高密码更改表单的易用性和兼容性:

  • 使用 <form><label><button> 等语义 HTML 元素。
  • 验证标签是否使用 forid 属性正确关联到输入。
  • 使用 minlengthpattern 等属性显示密码规则,并提供内嵌指南。
  • 在表单附近显示确认消息或错误消息。