HTML - 禁用密码管理器

新手上路,请多包涵

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

 <!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. 有另一个密码类型的隐藏输入字段不起作用。

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

原文由 code4kix 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 674
2 个回答

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

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

 <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 ”选项。例如,请参阅 Firefox 的更改问题

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

因此,不要试图禁用浏览器密码管理器,因为您认为这会增加用户的安全性。它没有。


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


关于Security Stackexchange问题的讨论

原文由 NineBerry 发布,翻译遵循 CC BY-SA 3.0 许可协议

只是想补充一点,包括:

 data-lpignore="true"

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

原文由 caseybettridge 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏