阻止Chrome提示从输入框保存密码?

Jor*_*n H 8 html javascript google-chrome

Chrome最近更新了一个恼人的弹出窗口,该弹出窗口来自地址栏中的图标,并提示在用户提交表单时在页面上保存密码.此页面上没有其他输入框,没有其他浏览器提示保存此密码,因此我不知道Chrome的原因.它是一个密码,因此它不应该在输入框中以纯文本形式显示,但它不是应该保存的密码 - 它不是登录凭据.实际上非常重要的是计算机的用户不知道这个密码 - 其他人必须为他们输入密码 - 所以如果浏览器保存它就会很糟糕.

如何防止Chrome(和所有浏览器)提示您保存此密码?

<form action="/..." method="post" onsubmit="return pwFormIsSubmittable();">
    <p>Password: <input autofocus="" type="password" name="1409_password" style="width:100px" tabindex="1" autocomplete="off"></p>
    <div class="tabSubmitButtons">
        <input type="button" name="event=default" value="Cancel" onclick="window.location='...'" tabindex="3">");
        <input type="submit" value="Submit" onclick="submitForm();" tabindex="2">
        <input type="hidden" name="begin" value="Yes">
        <!-- couple other hidden inputs -->
    </div>
</form>
Run Code Online (Sandbox Code Playgroud)

恼人的镀铬弹出窗口

Mar*_*tin 15

不要使用输入类型password,而是使用样式设置为style="-webkit-text-security: disc;" 的类型文本 这将用点替换字符。

<input type="text" id="password" style="-webkit-text-security: disc;">
Run Code Online (Sandbox Code Playgroud)

还有其他使用点的选项:

input { -webkit-text-security: none; }
input { -webkit-text-security: circle; }
input { -webkit-text-security: square; }
input { -webkit-text-security: disc; /* Default */ }
Run Code Online (Sandbox Code Playgroud)

答案在这里找到:如何在 chrome 中禁用保存密码提示

  • 明智之举:`--webkit-*` 样式可在 Safari 和 chromium 浏览器(Chrome、Brave、Opera、Edge 等)中使用。这个答案不适用于 IE、FF 或其他不使用 Webkit 或 Blink 引擎的浏览器。更多信息:/sf/ask/242770811/ (2认同)

Ian*_*oyd 7

浏览器忽略的原因autocomplete=off是因为有些网站试图禁用自动填写密码.

那是错的; 2014年7月,Firefox是最后一个主要的浏览器,它最终实现了更改,忽略了任何试图关闭自动填充密码的网站.

任何网站试图绕过浏览器的偏好都是错误的,这就是浏览器忽略它的原因.没有理由知道为什么网站应该尝试禁用密码保存.

  • Chrome忽略了它
  • Safari忽略了它
  • IE忽略了它
  • Edge忽略它
  • Firefox忽略了它

微软甚至不得不在IE11之前解释它不是浏览器中的错误 - 该网站被破坏:为什么IE不会记住我的登录信息? (archive.is)

如果我是一个特殊的雪花怎么办?

有人提出了一个很好的用例:

我有一个共享的公共区域,亭子式计算机.我们不希望有人(意外或有意)保存他们的密码,以便下一个用户可以使用它.

这并没有违反声明:

任何网站试图绕过浏览器的偏好都是错误的

那是因为在共享信息亭的情况下:

  • 它不是具有古怪政策的网络服务器
  • 它是具有奇怪策略的客户端用户代理

浏览器(在共享计算机)是有要求的一个没有尝试保存密码.

防止正确的方法浏览器从保存密码
是配置的浏览器不保存密码.

由于您已锁定并控制此自助服务终端计算机:您可以控制设置.这包括保存密码的选项.

在Chrome和Internet Explorer中,您可以使用组策略(例如注册表项)配置这些选项.

来自Chrome政策列表:

AutoFillEnabled

启用自动填充功能

数据类型:布尔值(REG_DWORD)

Windows注册表位置: Software\Policies\Chromium\AutoFillEnabled

说明:启用Chromium的自动填充功能,并允许用户使用以前存储的信息(如地址或信用卡信息)自动填写Web表单.如果禁用此设置,用户将无法访问自动填充.如果启用此设置或未设置值,则自动填充将保持在用户的控制之下.这将允许他们配置自动填充配置文件并自行决定是否打开或关闭自动填充功能.

请将这个词告诉企业经理,试图禁用自动填写密码是错误的.浏览器故意无视任何试图这样做的人是错误的.那些人应该停止做错事.™


我们需要阻止政府,公司政策,安全审计员,PCI,HIPPA试图阻止用户保存密码.没有有效的用例来阻止用户保存其凭据.

  • 如果您有密码重置屏幕:密码应输入未屏蔽的明文框
  • 如果您需要2FA密码:密码应输入未屏蔽的纯文本框
  • 如果您有一次性密码:密码应输入未屏蔽的纯文本框

或者,您可以建议一种允许网站阻止保存密码的替代方案 - 只要它不会阻止用户保存任何密码.

换句话说

换一种说法:

  • 如果用户浏览器
  • 错误"请输入您最喜欢的婚前姓名的第一个颜色的名称." 获取新密码
  • 用户
  • 不想要他们的浏览器
  • 更新自己的密码,
  • 然后他们
  • 将点击Nope

在此输入图像描述

过度统治用户的意愿不是你的工作.这是他们的浏览器; 不是你的.

  • 新的用例:我有一个用户管理页面,试图为我正在尝试管理的用户保存+自动填充密码字段到我的浏览器......这显然没有意义.有些页面可以输入密码,但它实际上并不是我们当前的用户凭证...特别是如果它只是查看表单上的第一个文本输入字段,甚至不是用户的用户名...... . (3认同)
  • 如果我想在我网站的子页面上使用密码输入,而该密码只保护这个子页面,那该怎么办?这甚至不是该站点的密码,因此浏览器提示我“更新我的密码”是​​完全错误的。我有很多这样的子页面,每个子页面都有自己的密码。如何解决这个问题? (2认同)
  • @Ian Body 谢谢。我无法使用组策略,我不想禁用记住整个网站(仅一个子页面)的密码。特别是对于经过身份验证的用户,浏览器想要“更新”站点级密码 - 这最终将导致该用户无法使用存储的凭据再次登录。如果在这种情况下我只剩下文本输入,那么它真的很令人失望 - 屏蔽密码是一个巨大的痛苦。 (2认同)

Jor*_*n H 6

一种解决方案或解决方法是<input type="password" style="display:none"/>在真实密码输入框上方添加.Chrome只会尝试保存它找到的第一个密码,如果它是空白的,它不会抛出保存它的对话框.