【问题标题】:Cross-browser techniques for disabling password caching禁用密码缓存的跨浏览器技术
【发布时间】:2010-09-28 11:26:46
【问题描述】:

用户名/密码的保存和自动归档是大多数现代浏览器的一项功能。并且用户通常可以选择在每个域的基础上禁用此功能。但是网站本身有防止密码缓存的标准方法吗?

这里的重点是跨浏览器,所以如果有必要我会采用多种并行机制。

(我已经看到缓存在存在非标准登录字段时被有效禁用,例如,额外隐藏的密码字段。但我宁愿不依赖 副作用 其行为可能未来会发生意想不到的变化。)

相反,是否有浏览器/版本实现密码缓存而没有任何禁用功能?

【问题讨论】:

  • 你到底想达到什么目的?强制用户记住密码,还是防止攻击者在用户端获取存储的密码?
  • 我的不是推理,我的是实施和部署。 (但可能是后者。)客户:disa.mil
  • 你应该只使用 CAC ;)

标签: security browser passwords


【解决方案1】:

只需在用户名和密码之间添加另一个密码字段,并将样式设置为不显示。

<!-- Username label and text here> ... <--!>
<input type="password" id='txtPasswordDud' style='display: none;' />
<!-- Actual Password label and text here> ... <--!>

【讨论】:

    【解决方案2】:

    AFAIK,屏蔽字段(显示“*”而不是您键入的符号的字段)永远不会保存用于自动完成。您想阻止用户在浏览器的密码保存工具中记住您网站的密码吗?

    【讨论】:

    • 正确,防止存储在密码保存工具中。
    【解决方案3】:

    我想浏览器会在提交表单时保存表单的字段。如果您使用 AJAX 获取密码字段的值,发送它,然后清除该字段怎么办?表单实际上永远不会被提交,因此理论上浏览器永远不会有机会保存这些值。

    【讨论】:

    • 有人对此答案做过任何测试吗?我喜欢这个理论,只是想知道它是否属实。
    【解决方案4】:

    autocomplete="off" 添加到您的&lt;input&gt; 元素中。适用于所有现代浏览器,IIRC。

    【讨论】:

    • 啊,现在看到我期待像 cache=off 这样的东西。我必须进行测试以确保密码不会进入磁盘 - 而不是仅仅被排除在自动完成之外......
    • 仅供参考,Microsoft 决定 Internet Explorer 11 将不再支持 autocomplete="off"input type="password" 字段。 msdn.microsoft.com/en-us/library/ie/ms533486%28v=vs.85%29.aspx
    【解决方案5】:

    为密码输入一个随机生成的名称,只有您可以识别。例如,将该名称存储在隐藏字段中,然后使用该名称获取插入的密码。这样,即使浏览器缓存了密码,下次用户访问时也无法恢复。

    此时,您的用户可能会继续将密码缓存在显示器侧面的便利贴上,但这确实是一场完全不同的战斗。

    同样的方法可以很好地对付垃圾邮件,因为大多数机器人都依赖于查找常见的字段名称。

    【讨论】:

    • 有趣。但是浏览器最终还是会将密码存储在用户的磁盘上,这对我们来说是一个安全漏洞。 (而且,哦,我同意你的 postit 理论。)
    猜你喜欢
    • 1970-01-01
    • 2015-08-27
    • 2012-01-20
    • 2012-01-05
    • 2018-08-30
    • 1970-01-01
    • 2011-10-11
    • 2010-10-29
    • 2018-06-29
    相关资源
    最近更新 更多