首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >HTML -禁用密码管理器

HTML -禁用密码管理器
EN

Stack Overflow用户
提问于 2017-01-31 05:16:17
回答 5查看 17.4K关注 0票数 17

我们的安全团队要求我们禁用HTML表单上受保护字段的密码管理器。作为示例,下面是一个过于简化的HTML表单。当我点击submit按钮时,firefox (version 51.0.1)弹出密码管理器。

代码语言:javascript
复制
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
</head>
<body>
    <form name="testform" action="disable-pwd-mgr.htm" method="post"
        autocomplete="off">

        <label for="protected-input">Protected Input</label> 
        <input type="password" size="16" maxlength="16" id="protected-input"  name="protected-input" accept="numbers" />
        <input type="password" id="disable-pwd-mgr-1" style="display: none;" value="stop-pwd-mgr-1"/>
        <input type="password" id="disable-pwd-mgr-2" style="display: none;" value="stop-pwd-mgr-2"/>

        <button name="next" id="next" type="submit" value="Next">
            NEXT
        </button>

    </form>
</body>
</html>

请注意,所有替代方案都表明 不起作用。

  1. autocomplete=off不起作用。
  2. 具有另一个类型为password的隐藏输入字段时不起作用。

使用两个单独的附加隐藏密码输入,每个输入都具有不同的虚拟值,似乎适用于用户在受保护字段中实际输入值并单击提交时的情况。但是,如果将该字段留空并单击submit按钮,密码管理器将再次弹出。有趣的是,chrome (55版)根本不弹出密码管理器,这很好。对于这个问题,有人有更好的解决方案吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2017-01-31 06:28:01

这适用于当前的Firefox (51)、Chrome (55)、Edge (38)和IE (11):

使用三种不同的隐藏密码输入和三种不同的值。这似乎阻止了浏览器激活密码管理器,因为它无法猜测这三个值中的哪一个是要使用的新密码。

代码语言:javascript
复制
<form name="testform" action="index" method="post"
      autocomplete="off">

    <input name="disable-pwd-mgr-1" type="password" id="disable-pwd-mgr-1" style="display: none;" value="disable-pwd-mgr-1" />
    <input name="disable-pwd-mgr-2" type="password" id="disable-pwd-mgr-2" style="display: none;" value="disable-pwd-mgr-2" />
    <input name="disable-pwd-mgr-3" type="password" id="disable-pwd-mgr-3" style="display: none;" value="disable-pwd-mgr-3" />

    <label for="protected-input">Protected Input</label>
    <input autocomplete="aus" type="password" size="16" maxlength="16" id="protected-input" name="protected-input" accept="numbers" />

    <button name="next" id="next" type="submit" value="Next">
        NEXT
    </button>
</form>

在过去的几年里,浏览器制造商已经开始忽略密码表单的"autocomplete=off“选项。例如,请参见the change issue for Firefox

原因很简单:许多网站基于对安全性的错误理解,希望禁用登录表单的自动完成功能。允许用户在安全的密码管理器中存储密码(如目前的浏览器所提供的那样)并不存在安全风险。事实上,它允许用户在不同的网站上使用安全的个人密码,从而提高了安全性。

因此,不要试图禁用浏览器密码管理器,因为您认为这会提高用户的安全性。事实并非如此。

在某些情况下,您可能不想弹出密码管理器,例如,因为输入的密码是一次性密码,或者第二次输入时就没有用了。但是在使用一次性密码/ tan的情况下,为什么要使用密码输入呢?只需使用普通输入即可。

Discussion on the issue on Security Stackexchange

票数 16
EN

Stack Overflow用户

发布于 2018-07-11 03:37:11

我只是想补充一下,包括:

代码语言:javascript
复制
data-lpignore="true"

在您的输入元素上将禁用该字段的Last Pass。不确定其他密码管理器是否有类似的功能。

票数 18
EN

Stack Overflow用户

发布于 2020-08-02 13:41:57

现代浏览器支持输入密码字段的autocomplete="new-password"。但在IE中不受支持。

有关浏览器支持,请参阅:https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41945535

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档