【问题标题】:autocomplete="new-password" ignored by Chrome 63 in WindowsWindows 中的 Chrome 63 忽略 autocomplete="new-password"
【发布时间】:2018-06-17 10:50:46
【问题描述】:

我的 asp.net 站点中有以下测试页面:

<html>
<body>
    <form autocomplete="off">
        <input type="password" name="password" autocomplete="new-password">
    </form>
</body>
</html>

尽管autocompleteoff 用于表单,new-password 用于密码字段,Chrome 63.0.3239.132 Windows 仍然显示一个下拉列表,其中包含可供选择密码的用户列表。

根据this,以上应该足以禁用密码自动完成。如何禁用密码自动完成?

【问题讨论】:

    标签: html asp.net google-chrome autocomplete


    【解决方案1】:

    Chrome/Chromium 开发人员已确定他们将忽略 autocomplete="off" 值,以便在网站开发人员积极/天真地添加 autocomplete="off" 属性的消费者网站上提高可用性,以便用户可以轻松地重用值。

    这违反了规范,有几个公开的错误在讨论这个问题,但 Google 似乎不愿意让步。

    要解决此问题,您需要将所有自动完成属性设置为非预期值。如果您这样做,Chrome 将遵守它们。 (嗯,基本上它没有匹配,所以它什么都不显示)

    例如

    <!doctype html>
    <html>
    <body>
      <form autocomplete="do-not-show-ac">
        <input type="password" name="password" autocomplete="do-not-show-ac"/>
      </form>
    </body>
    </html>
    

    当浏览器供应商不遵守规范时,这很糟糕,但至少对于所有显示自动完成信息没有意义或公然违反安全规定的情况都有一种解决方法。

    【讨论】:

    • 谢谢@scunliffe!即使使用autocomplete="do-not-show-ac",我的表单仍然会自动完成。即使您在上面发布的代码仍然显示自动完成。好郁闷!
    • 我遇到的问题是我希望密码自动完成的字段是“密码确认”字段,用于执行需要仔细检查的操作用户就是他们所说的那个人。登录页面启用了自动完成功能,因此我们将始终保存值。我最终将密码字段复制为标准文本输入,将其值放入隐藏字段并屏蔽字符,因此它的行为类似于密码字段。太可怕了,但我需要快速修复!
    • 截至 2018 年 4 月 5 日,如果我在 HTML 中将自动完成属性值设置为“非标准”值,我仍然会遇到问题。使用开发工具,我注意到 Chrome 在渲染时将其改回“关闭”。这个解决方法最终解决了这个问题,尽管在我看来这是一个相当笨拙的修复(也使用 jQuery): $("input[type='text']").focus(function () { $(this).removeAttr ("autocomplete").attr("autocomplete", "new-password"); });
    • 2020年也一样。
    • 看起来 chrome 不再尊重任何输入类型不是密码的字段的新密码。这场军备竞赛必须停止。
    猜你喜欢
    • 2021-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-15
    • 2018-12-17
    • 2013-08-15
    • 1970-01-01
    • 2018-10-15
    相关资源
    最近更新 更多