在政府医疗机构工作的乐趣之一是必须处理所有围绕PHI(受保护的健康信息)的偏执。不要误解我的意思,我支持尽一切可能保护人们的个人信息(健康状况、财务状况、上网习惯等),但有时人们会有点太神经质了。

举个例子:我们的一位州客户最近发现浏览器提供了保存密码的方便功能。我们都知道它已经存在了一段时间,完全是可选的,由最终用户决定是否使用它是一个明智的决定。然而,目前有一点骚动,我们被要求找到一种方法来禁用我们网站的功能。

问:网站有没有办法告诉浏览器不要提供记住密码的功能?我从事网络开发已经很长时间了,但我不知道我以前遇到过这种情况。

任何帮助都是感激的。


当前回答

使用真正的双因素身份验证来避免对密码的唯一依赖,因为密码可能存储在比用户浏览器缓存更多的地方。

其他回答

您可以通过在每个显示中随机为密码字段使用的名称来防止浏览器匹配表单。然后浏览器看到与url相同的密码,但不能确定这是相同的密码。也许它在控制其他东西。

更新:注意,这应该是使用自动补全或其他策略的补充,而不是替代它们,因为其他人指出的原因。

还要注意,这只会阻止浏览器自动完成密码。它不会阻止它以浏览器选择使用的任意安全级别存储密码。

我被给了一个类似的任务禁用自动填写登录名和密码的浏览器,经过大量的试验和错误,我发现下面的解决方案是最优的。只需在原始控件之前添加以下控件。

<input type="text" style="display:none">
<input type="text" name="OriginalLoginTextBox">

<input type="password" style="display:none">
<input type="text" name="OriginalPasswordTextBox">

这在IE11和Chrome 44.0.2403.107上运行正常

我周围有个工作,可能会有帮助。

你可以自定义字体。所以,做一个自定义字体,所有的字符为点/圆/星号为例。使用它作为你网站的自定义字体。检查如何做到这一点在inkscape:如何使自己的字体

然后在你的登录表单上使用:

<form autocomplete='off'  ...>
   <input type="text" name="email" ...>
   <input type="text" name="password" class="password" autocomplete='off' ...>
   <input type=submit>
</form>

然后添加css:

@font-face {
    font-family: 'myCustomfont';
    src: url('myCustomfont.eot');
    src: url('myCustomfont?#iefix') format('embedded-opentype'),
         url('myCustomfont.woff') format('woff'),
         url('myCustomfont.ttf') format('truetype'),
         url('myCustomfont.svg#myCustomfont') format('svg');
    font-weight: normal;
    font-style: normal;

}
.password {
  font-family:'myCustomfont';
}

很好的跨浏览器兼容性。我尝试过IE6+、FF、Safari和Chrome浏览器。只要确保你转换的oet字体不会被损坏。希望有帮助?

Markus提出了一个很好的观点。我决定查找autocomplete属性,得到以下内容:

使用这个的唯一缺点 属性是不规范 (适用于IE和Mozilla浏览器), 并且会导致XHTML验证 失败。我认为这是一个 打破验证是合理的 然而。(源)

所以我不得不说,虽然它不是100%的工作,但在主要的浏览器处理,所以它是一个伟大的解决方案。

我一直在做的是autocomplete="off"和使用javascript / jQuery清除密码字段的组合。

jQuery示例:

$(function() { 
    $('#PasswordEdit').attr("autocomplete", "off");
    setTimeout('$("#PasswordEdit").val("");', 50); 
});

通过使用setTimeout(),您可以等待浏览器在清除字段之前完成该字段,否则浏览器将总是在您清除字段后自动完成。