如何使用Javascript禁用chrome中的保存密码气泡?

Cog*_*nic 37 html javascript google-chrome internet-explorer-8 angularjs

我需要能够防止用户登录后甚至出现"保存密码"气泡.

自动完成=关闭不是答案.

我没有遇到过为这个问题提供安全解决方案的帖子.真的没有办法在Chrome中禁用密码泡泡吗?

Leo*_*eon 20

我发现没有"支持"的方式来做到这一点.

我所做的是将密码内容复制到隐藏字段,并在提交之前删除密码输入.

由于提交时页面上没有任何密码字段,因此浏览器永远不会要求保存.

这是我的javascript代码(使用jquery):

function executeAdjustment(){       
        $("#vPassword").val($("#txtPassword").val());
        $(":password").remove();        
        var myForm = document.getElementById("createServerForm");
        myForm.action = "executeCreditAdjustment.do";
        myForm.submit();
    }
Run Code Online (Sandbox Code Playgroud)

  • 感谢Leon,我们正在使用您的解决方案稍作修改:我们删除了值并将类型设置为文本,而不是删除密码输入.`password.val( ""); password.attr("type","text");`. (7认同)

Vad*_*dim 17

经过几个小时的搜索,我想出了自己的解决方案,这似乎适用于Chrome和Safari(虽然不是在Firefox或Opera中,我还没有测试过IE).诀窍是用两个虚拟字段包围密码字段.

<input type="password" class="stealthy" tabindex="-1">
<input type="password" name="password" autocomplete="off">
<input type="password" class="stealthy" tabindex="-1">
Run Code Online (Sandbox Code Playgroud)

这是我使用的CSS:

.stealthy {
  left: 0;
  margin: 0;
  max-height: 1px;
  max-width: 1px;
  opacity: 0;
  outline: none;
  overflow: hidden;
  pointer-events: none;
  position: absolute;
  top: 0;
  z-index: -1;
}
Run Code Online (Sandbox Code Playgroud)

注意:虚拟输入字段不能再被display: none许多人建议隐藏,因为浏览器会检测到并隐藏隐藏字段,即使字段本身未被隐藏但被隐藏在隐藏的包装中.因此,CSS类的原因基本上使得输入字段不可见且不可忽略而不"隐藏"它们.


Iss*_*oli 3

最好的解决方案是通过手动用星号或点替换值来用输入文本模拟输入密码。

  • 为什么说常规输入字段不安全?您似乎暗示密码字段更安全,但实际上并非如此。它只是一个常规输入字段,显示点/星号而不是文本,但其内容仍然以纯文本形式发送,除非开发人员在发送表单之前进行一些额外的操作。因此,使用常规输入字段并不比使用密码字段安全。唯一的问题可能是移动设备与此伪密码字段的兼容性。 (7认同)
  • 输入文本和密码之间的唯一区别是星号和拒绝密码复制,可以模拟,两个输入的数据都可以用js操作。为了确保发送数据的安全,您应该使用 https。 (5认同)