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

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

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

任何帮助都是感激的。


当前回答

我尝试了上面的autocomplete="off",但任何成功。如果你正在使用angular js,我的建议是使用button和ng-click。

<button type="button" class="" ng-click="vm.login()" />

这已经有一个公认的答案,我加上这一点,如果有人不能解决问题与公认的答案,他可以去我的机制。

谢谢你的提问和回答。

其他回答

其实不是——你唯一能做的就是在网站上提供建议;也许,在他们第一次登录之前,您可以向他们展示一个表单,其中的信息表明不建议他们允许浏览器存储密码。

然后,用户将立即按照建议,在便利贴上写下密码,并将其粘贴在显示器上。

我尝试了上面的autocomplete="off",但任何成功。如果你正在使用angular js,我的建议是使用button和ng-click。

<button type="button" class="" ng-click="vm.login()" />

这已经有一个公认的答案,我加上这一点,如果有人不能解决问题与公认的答案,他可以去我的机制。

谢谢你的提问和回答。

我不确定它是否能在所有浏览器中工作,但你应该尝试在表单上设置autocomplete="off"。

<form id="loginForm" action="login.cgi" method="post" autocomplete="off">

禁用表单和密码存储提示并防止表单数据在会话历史中缓存的最简单和最简单的方法是使用值为“off”的自动完成表单元素属性。

从https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion

一些小研究表明,这可以在IE中工作,但我不能保证;)

@Joseph:如果严格要求通过实际标记的XHTML验证(不知道为什么会这样),理论上你可以在之后用javascript添加这个属性,但禁用js的用户(可能可以忽略不计,如果你的网站需要js,则为零)仍然会保存他们的密码。

jQuery示例:

$('#loginForm').attr('autocomplete', 'off');

我的js (jquery)的解决方案是改变密码输入类型的文本在表单提交。密码可能在一秒钟内可见,所以我还隐藏了在此之前的输入。我宁愿不使用这个登录表单,但它是有用的(连同autocomplete="off"),例如在网站的管理部分。

在提交表单之前,试着把它放到一个控制台中(使用jquery)。

$('form').submit(function(event) {
    $(this).find('input[type=password]').css('visibility', 'hidden').attr('type', 'text');
});

在Chrome 44.0.2403.157(64位)上测试。

因为autocomplete="off"对密码字段不起作用,所以必须依赖javascript。这里有一个简单的解决方案,基于这里找到的答案。

添加属性data-password-autocomplete="off"到你的密码字段:

<input type="password" data-password-autocomplete="off">

包括以下JS:

$(function(){
    $('[data-password-autocomplete="off"]').each(function() {
        $(this).prop('type', 'text');
        $('<input type="password"/>').hide().insertBefore(this);
        $(this).focus(function() {
            $(this).prop('type', 'password');
        });
    });     
});

这个解决方案适用于Chrome和FF。