我需要阻止浏览器存储用户名和密码值,因为我正在开发一个包含更安全数据的web应用程序。我的当事人让我这么做的。
我尝试了HTML和password字段中的autocomplete="off"
属性。但它不能在最新的浏览器,如Chrome 55,火狐38+,互联网浏览器11等。
什么是最好的解决办法?
发布于 2016-12-28 13:13:53
谢谢你给我一个答复。我遵循下面的链接
我通过在输入中添加readonly
& onfocus="this.removeAttribute('readonly');"
属性(除了autocomplete="off"
)就解决了这个问题,如下所示。
<input type="text" name="UserName" autocomplete="off" readonly
onfocus="this.removeAttribute('readonly');" >
<input type="password" name="Password" autocomplete="off" readonly
onfocus="this.removeAttribute('readonly');" >
这对我来说很好。
发布于 2016-12-19 06:56:58
试图阻止浏览器存储密码是不建议做的事情。有一些解决办法可以做到这一点,但现代浏览器没有提供这一功能的开箱即用,而且有充分的理由。现代浏览器将密码存储在密码管理器中,以便使用户能够使用比通常更强的密码。
如MDN:如何关闭表单自动完成所解释
现代浏览器实现了集成的密码管理:当用户输入站点的用户名和密码时,浏览器提供给用户记住它。当用户再次访问站点时,浏览器将使用存储的值自动填充登录字段。 此外,浏览器还允许用户选择主密码,浏览器将使用该密码加密存储的登录详细信息。 即使没有主密码,浏览器中的密码管理通常也被视为安全的净收益。由于用户不必记住浏览器为他们存储的密码,所以他们可以选择比其他密码更强的密码。 因此,许多现代浏览器不支持登录字段的
autocomplete="off"
:
autocomplete="off"
,并且表单包含用户名和密码输入字段,则浏览器仍将提供记住此登录,如果用户同意,浏览器将在下次用户访问页面时自动填充这些字段。autocomplete="off"
,那么浏览器仍然会提供记住此登录,如果用户同意,浏览器将在下次用户访问页面时自动填充这些字段。这是火狐(自38版以来)、Google (自34版)和Internet (自11版以来)的行为。
如果作者希望防止在用户管理页中自动填充密码字段,用户可以为自己以外的人指定新密码,则应指定autocomplete="new-password"
,尽管尚未在所有浏览器中实现对此的支持。
发布于 2018-03-15 16:33:26
这里是一个纯HTML/CSS解决方案的Chrome测试在版本65.0.3325.162 (正式构建)(64位)。
设置输入type="text"
并使用CSS text-security:disc
模拟type="password"
。
<input type="text" name="username">
<input type="text" name="password" style="text-security:disc; -webkit-text-security:disc;">
moz-text-security
被弃用/删除。要解决这个问题,请创建一个仅由点组成的CSS font-face
,并使用font-family: 'dotsfont';
.Source:让输入type=text看起来像type=password上面的源代码包含一个指向、CSS、、moz-text-security
和-webkit-text-security
属性工作内容的链接。
来源:https://github.com/kylewelsby/dotsfont
据我测试,此解决方案适用于Chrome、Firefox版本59.0 (64位)、Internet版本11.0.9600以及IE模拟器、Internet 5及更高版本。
https://stackoverflow.com/questions/41217019
复制相似问题