Firefox 30 忽略密码的autocomplete="off"
,选择提示用户改为是否应将密码存储在客户端上。请注意 2014 年 5 月 5 日的以下评论 :
- 密码管理器始终提示是否要保存密码。未经用户许可,不会保存密码。
- 在 IE 和 Chrome 之后,我们是第三个实现此更改的浏览器。
根据Mozilla 开发人员文档 ,表单元素属性autocomplete
可防止表单数据在旧版浏览器中缓存。
<input type="text" name="foo" autocomplete="off" />
除了autocomplete=off
,您还可以通过生成页面的代码随机化您的表单字段名称,也许可以通过在名称末尾添加一些特定于会话的字符串。
提交表单后,您可以在服务器端处理它之前删除该部分。这将阻止 Web 浏览器查找您的字段的上下文,也可能有助于防止 XSRF 攻击,因为攻击者无法猜测表单提交的字段名称。
大多数主流浏览器和密码管理器(正确地,恕我直言)现在忽略autocomplete=off
。
为什么?许多银行和其他 “高安全性” 网站为了安全目的将autocomplete=off
添加到他们的登录页面,但这实际上降低了安全性,因为它导致人们更改这些高安全性站点上的密码以便于记忆(并因此破解) )因为自动完成被破坏了。
很久以前,大多数密码管理器开始忽略autocomplete=off
,现在浏览器开始只对用户名 / 密码输入做同样的事情。
遗憾的是,自动完成实现中的错误会将用户名和 / 或密码信息插入到不适当的表单字段中,从而导致表单验证错误,或者更糟糕的是,意外地将用户名插入到用户有意留空的字段中。
什么是 Web 开发人员?
不幸的是, Chrome 34 会在看到密码字段时尝试使用 user / pass 自动填充字段。这是一个非常糟糕的错误,希望它们会改变 Safari 的行为。但是,将此添加到表单顶部似乎禁用密码自动填充:
<input type="text" style="display:none">
<input type="password" style="display:none">
我还没有彻底调查 IE 或 Firefox,但如果其他人在评论中有信息,我将很乐意更新答案。