IE11 dropped support for autocomplete=off
for input type=password
,无论是表单还是元素级别。
有没有人找到一个有效的解决方案来禁用IE11下的自动完成功能?
答案 0 :(得分:6)
使用双因素身份验证解决安全问题会更好。围绕浏览器进行黑客攻击将(a)仅在短期内工作(密码管理员在处理这些方法方面变得越来越好),并且(b)经常导致可访问性问题,这可能会比您的恐惧花费更多用户合法密码泄露。如果您在一个大型组织中工作,那么对您的浏览器黑客有足够时间的辅助技术用户最终可能会提起诉讼。 (我不是特别针对这个黑客,但一般来说,反对浏览器工作会伤害辅助技术)
双因素身份验证,即使是一个简单的实现,只是要求中间名之类的东西,然后设置一个cookie("现在允许这个浏览器在没有2FA的情况下访问一个月"),这使得它非常多随机黑客难以获得未经授权的帐户访问权限,并为用户提供更好的服务,尤其是那些使用屏幕阅读器或其他辅助技术的用户。
另一方面,禁用密码管理器往往会导致易于输入密码而不是强密码。使用LastPass或类似的密码,我可以拥有一个24个字符的密码(LastPass可能填写你试图用hacks保护的字段,fyi),我永远不会希望记住这些密码,并为每个站点提供不同的密码。当我有密码时我必须记住,它们往往是两个用符号串在一起的单词,例如" Dogs + Knife"。
答案 1 :(得分:1)
这是一种解决方法,而非最佳做法。
IE 11将自动填充任何input type="password"
。但它只会填充第一个。所以我所做的就是这个
<div style="display:none;">
<input type="text" id="my_username"/>
<input type="password" id="my_password"/>
</div>
<asp:Login ID="Login1" runat="server"
SkinId="LoginDefault" LabelStyle-Font-Bold="true"
DisplayRememberMe="False"
DestinationPageUrl="~/CheckPassword.aspx">
<LoginButtonStyle CssClass="btnEntry" />
<LabelStyle Font-Bold="True" />
</asp:Login>
现在,如果您注意到第一个具有显示样式:无。这允许IE 11自动完成它,但用户并不关心,因为他们没有看到。我知道这是一种黑客攻击,但它确实有效。
答案 2 :(得分:1)
您可以在输入用户名后插入隐藏输入。
答案 3 :(得分:1)
答案 4 :(得分:0)
我有点迟了,但最干净的方法(在撰写本文时)似乎是让用户在不同的页面中提交用户名和密码,即用户输入用户名,提交,然后输入密码并提交。 Bank Of America和HSBC Bank网站也在使用此功能。
由于浏览器无法将密码与用户名相关联,因此不会提供存储密码。这种方法适用于所有主流浏览器(在撰写本文时),并且无需使用Javascript即可正常运行。缺点是它对用户来说会更麻烦,并且需要2次回发才能进行登录操作而不是一次,所以这实际上取决于您的网站需要的安全性。
PS:Firefox将按照IE11的标准,忽略autocomplete="off"
的密码字段,标记为VERIFIED FIXED
的{{3}}。