Chrome 最近更新了一个恼人的弹出窗口,该弹出窗口从地址栏中的图标下来,并在用户提交表单时提示在页面上保存密码。此页面上没有其他输入框,也没有其他浏览器提示保存此密码,因此我不知道 Chrome 为什么会这样做。它是一个密码,因此它不应该在输入框中显示为纯文本,因此它不是一个密码,应该保存在计算机中-它实际上并不重要。
如何防止 Chrome(和所有浏览器)提示保存此密码?
<form action="/..." method="post" onsubmit="return pwFormIsSubmittable();">
<p>Pword: <input autofocus="" type="pword" name="1409_pword" style="width:100px" tabindex="1" autocomplete="off"></p>
<div cl="tabSubmitButtons">
<input type="on" 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>
不使用输入类型密码,而是使用样式设置为style = "-webkit-text-security:disc;"的类型text,这将用点替换字符。
<input type="text" id="pword" style="-webkit-text-security: disc;">
还有其他使用点的选项:
input { -webkit-text-security: none; }
input { -webkit-text-security: circle; }
input { -webkit-text-security: square; }
input { -webkit-text-security: disc; /* Default */ }
一种解决方案或解决方法是在真实密码输入框上方添加<input type="pword" style="display:none"/>
。Chrome 只尝试保存找到的第一个密码,如果它是空白的,它不会抛出对话框来保存它。
浏览器忽略autocomplete=off
的原因是因为有一些网站试图禁用密码的自动完成。
这是错误的。
2014 年 7 月,Firefox 是最后一个实现更改的主要浏览器,该更改忽略了任何试图关闭密码自动完成功能的网站。
Bugzilla Bug 956906-ignore autocomplete="off" when offering to save pwords via the pword manager(archive.is) Reddit discussion(archive.is) Chrome's announcement when they began ignoringautocomplete=off
(archive.is)
IE11 fixed the bug of not being able to auto-complete pwords(archive.is)
任何网站试图绕过浏览器的偏好都是错误的;这就是浏览器忽略它的原因。没有理由知道为什么网站应该尝试禁用密码保存。
Chrome 忽略它
Safari 忽略它
IE 忽略它
Edge 忽略它
Firefox 忽略它
微软甚至不得不在 IE11 之前解释它不是浏览器中的错误-网站被了:Why Won’t IE Remember My Login Info?(archive.is)
如果我是一个特殊的snowflake?
有些人提出了一个很好的用例:
我有一个共享的公共区域,信息亭风格的计算机。我们不希望有人(意外或故意)保存他们的密码,以便他们的下一个用户可以使用它。
这并不违反声明:
任何网站试图绕过浏览器的偏好都是错误的
这是因为在共享信息亭的情况下:
它不是Web 服务器具有 oddball 策略
它是客户端用户代理具有 oddball 策略
浏览器(共享计算机)要求它不要尝试保存密码。
防止浏览器保存密码的正确方法
是将浏览器配置为不保存密码。
由于您已锁定并控制此信息亭计算机:您可以控制设置。其中包括保存密码的选项。
在 Chrome 和 Internet Explorer 中,您可以使用组策略(例如注册表项)配置这些选项。
自动填充已启用
启用自动填充
数据类型:布尔值 (REG_DWORD)
Windows 注册表位置:Software\ Policies\ Chromium\ AutoFillEnabled
说明:启用 Chromium 的自动填充功能,并允许用户使用以前存储的信息(如地址或信用卡信息)自动填写 Web 表单。如果禁用此设置,则用户将无法访问自动填充。如果启用此设置或未设置值,则自动填充将保持在用户的控制之下。这将允许用户配置自动填充配置文件并自行打开或关闭自动填充。
请将这个词传递给公司经理,试图禁用密码自动完成是错误的。浏览器故意忽略任何尝试这样做的人是错误的。这些人应该停止做错事。™
我们需要防止、公司政策、安全审核员、 PCI 、 HIPPA 试图阻止用户保存密码。没有有效的用例可以阻止用户保存其凭据。
如果您有密码重置屏幕:应在未屏蔽的纯文本框中输入密码
如果您想要一个 2FA 密码:密码应在未屏蔽的纯文本框中输入
如果您有one-time pword:密码应在未屏蔽的纯文本框中输入
你可以自由地建议一个替代方案:
允许网站阻止保存密码
只要它永远不能用于阻止用户保存任何密码
把它的另一种方式
换言之:
如果用户浏览器
错误“请输入您最喜欢的娘家姓的第一种颜色的名称。”为新密码
和用户
不想要他们的浏览器
要更新他们的密码,
thenthey将单击否
否决用户的意愿不是你的工作。这是他们的浏览器;不是你的。
您可以在提交表单之前将密码字段的类型更改为文本:
<script type="text/javascript">
function validate() {
return true;
}
function copyP() {
document.getElementById("hidPword").value = document.getElementById("pwordField").value;
if (document.getElementById("pwordField").value != "") {
var pwordLength = document.getElementById("pwordField").value.length;
document.getElementById("pwordField").value = "•".repeat(pwordLength);
}
document.getElementById("pwordField").type = 'text';
}
function changeType() {
document.getElementById("pwordField").type = 'pword';
document.getElementById("pwordField").value = document.getElementById("hidPword").value;
}
</script>
<form method="post" action="yoururl" runat="server">
<input type="text" name="username" />
<input type="pword" id="pwordField" name="pwordField" onfocus="javascript:changeType()" onblur="javascript: copyP()" />
<input type="hidden" name="hidPword" id="hidPword" value="" />
<input type="submit" runat="server" name="btnsubmit" value="Submit" onclick="javascript:return validate()" />
</form>
本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处
评论列表(35条)