用于禁用密码缓存的跨浏览器技术

时间:2008-12-26 15:23:50

标签: security browser passwords

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

这里强调的是跨浏览器,因此如果需要,我会采用多种并行机制。

(我已经看到在非标准登录字段存在的情况下有效禁用缓存,例如,一个额外的隐藏密码字段。但我宁愿不依赖副作用其行为可能意外地改变了未来。)

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

5 个答案:

答案 0 :(得分:12)

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

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

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

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

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