禁用浏览器的“保存密码”功能

为政府医疗保健机构工作的乐趣之一就是不得不处理与PHI(受保护的健康信息)相关的所有偏执狂。 不要误解我的意思,我尽一切努力保护人们的个人信息(健康,财务,上网习惯等),但有时候人们会有点太过激动。

案例:我们最近的一位国家客户发现,浏览器提供了方便的功能来保存您的密码。 我们都知道它已经存在了一段时间,并且完全是可选的,并且由最终用户决定是否明智地使用或不使用。 然而,目前有一些骚动,我们正在寻求一种方法来禁用我们网站的功能。

:有没有办法让网站告诉浏览器不要提供记住密码? 我已经围绕web开发很长一段时间了,但不知道我以前遇到过。

任何帮助表示赞赏。


我不确定它是否适用于所有浏览器,但您应该尝试在表单上设置autocomplete =“off”。

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

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

从http://developer.mozilla.org/En/How_to_Turn_Off_Form_Autocompletion

一些小的研究表明,这在IE中起作用,但我不会保证;)

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

jQuery示例:

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

一段时间以来,我一直在努力解决这个问题,并解决了这个问题。 特权用户无法为他们保存保存的密码,但普通用户需要它。 这意味着特权用户必须登录两次,第二次强制执行没有保存的密码。

有了这个要求,标准的autocomplete="off"方法在所有浏览器中都不起作用,因为密码可能已经从第一次登录时保存下来。 一位同事找到了一个解决方案,用新密码字段集中替换密码字段,然后专注于新密码字段(然后挂接相同的事件处理程序)。 这工作(除了它在IE6中导致无限循环)。 也许有一种解决办法,但是这导致了我偏头痛。

最后,我试图在表单外面输入用户名和密码。 令我惊讶的是,这工作! 它适用于IE6,以及Linux和Firefox上的当前版本。 我还没有进一步测试,但我怀疑它在大多数情况下都适用,如果不是所有的浏览器(但是如果有一个浏览器不关心是否没有表单,它不会让我感到惊讶)。

下面是一些示例代码,以及一些jQuery使其工作:

<input type="text" id="username" name="username"/>
<input type="password" id="password" name="password"/>

<form id="theForm" action="/your/login" method="post">
  <input type="hidden" id="hiddenUsername" name="username"/>
  <input type="hidden" id="hiddenPassword" name="password"/>
  <input type="submit" value="Login"/>
</form>

<script type="text/javascript" language="JavaScript">
  $("#theForm").submit(function() {
    $("#hiddenUsername").val($("#username").val());
    $("#hiddenPassword").val($("#password").val());
  });
  $("#username,#password").keypress(function(e) {
    if (e.which == 13) {
      $("#theForm").submit();
    }
  });
</script>

那是一个非常古老的帖子,但我仍然会给出我的解决方案,而我的团队一直在努力实现这个解决方案。 我们只是在表单内添加了一个新的输入类型=“密码”字段,并将其封装在div中并隐藏了div。 确保这个div在实际的密码输入之前。 这对我们有效,它没有给出任何保存密码选项

Plunk - http://plnkr.co/edit/xmBR31NQMUgUhYHBiZSg?p=preview

HTML:

<form method="post" action="yoururl">
      <div class="hidden">
        <input type="password"/>
      </div>
      <input type="text" name="username" placeholder="username"/>
      <input type="password" name="password" placeholder="password"/>
    </form>

CSS:

.hidden {display:none;}
链接地址: http://www.djcxy.com/p/56989.html

上一篇: Disable browser 'Save Password' functionality

下一篇: refresh overwrites request body?