7

IE11在表单和元素级别都放弃了对 forautocomplete=off的支持。input type=password

有没有人找到一个可行的解决方案来禁用 IE11 下的自动完成功能?

4

5 回答 5

7

使用两因素身份验证解决安全问题会好得多。围绕浏览器进行黑客攻击将 (a) 仅在短期内有效(密码管理器在处理这类方法方面做得越来越好),并且 (b) 通常会导致可访问性问题,这可能会花费您比您担心的更多的用户合法密码泄露。如果您在大型组织中工作,那么对浏览器黑客攻击有足够时间的辅助技术用户最终可能会提起诉讼。(我并不是特别提到这个黑客,但一般来说,针对浏览器工作会损害辅助技术)

两因素身份验证,即使是一个草率的实现,它只要求提供中间名之类的东西,然后设置一个 cookie(“这个浏览器现在可以在一个月内没有 2FA 的情况下访问”),这使得随机黑客更难获得未经授权的访问帐户,并为用户提供更好的服务,尤其是那些使用屏幕阅读器或其他辅助技术的用户。

另一方面,禁用密码管理器往往会导致易于键入的密码而不是强密码。使用 LastPass 或类似的,我可以拥有一个我永远不会希望记住的 24 个字符的密码(LastPass 可能会填写您试图通过黑客攻击保护的字段,仅供参考),以及每个站点的不同密码。当我有我必须记住的密码时,它们往往是用符号串在一起的两个单词,例如“Dogs+Knife”。

于 2014-06-13T16:46:48.820 回答
1

我对此有点晚了,但最干净的方法(在撰写本文时)似乎是让用户在不同的页面中提交他们的用户名和密码,即用户输入他们的用户名,提交,然后输入他们的密码并提交。美国银行汇丰银行网站也在使用这个。

由于浏览器无法将密码与用户名相关联,因此它不会提供存储密码。这种方法适用于所有主要浏览器(在撰写本文时),并且无需使用 Javascript 即可正常运行。缺点是它会给用户带来更多麻烦,并且登录操作需要 2 次回发而不是 1 次,因此这实际上取决于您的网站需要的安全性。

PS:Firefox 将遵循 IE11 的领导并忽略autocomplete="off"密码字段,根据这个标记为的“错误报告”VERIFIED FIXED

于 2014-05-07T00:50:03.997 回答
0

这是一种变通方法,而不是最佳实践。

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>  

现在,如果您注意到第一个样式为 display:none。这允许 IE 11 自动完成它,但用户并不关心,因为他们看不到。我知道这是一种 hack,但它确实有效。

于 2013-12-27T23:24:42.713 回答
0

您可以在用户名输入后插入隐藏输入。

于 2014-01-13T15:54:50.487 回答
0

您需要为用户名和密码设置不同的页面。谷歌也使用这种方法。

谷歌登录屏幕

于 2017-09-11T23:15:03.410 回答