如何停止浏览器存储密码值
How to stop a browser storing password values
我正在浏览一个旧网站,在密码字段上添加autocomplete="off",确保它们被散列等等,以尝试提高安全性。
但是,如果用户在浏览器中选择了密码,我如何阻止密码被存储?由于用户名和密码是预先填写的,即使输入框上有autocomplete="off",他们也可以很容易地进入管理员登录。
我想我可以使用JavaScript来检查密码字段中值的存在(例如,当浏览器填充它时),然后删除它。但是要检查一个值,你需要将输入框的类型更改为"text",一旦你将其更改为"password",浏览器将再次用值填充框。
是否有办法阻止这种情况,因为我认为这对于那些使用相同密码的人来说可能是一个安全漏洞,因为您可以将DOM元素更改为文本,以纯文本形式查看值,然后在其他网站上尝试相同的值。
我试图使用的代码是这样的
getEl = document.getElement的旧跨浏览器函数DOM = my own DOM on load function
function clearPSW()
{
var p=getEl('strPassword');
p.setAttribute("type","text");
console.log("value is " + p.value);
// if I exit here without changing back BOTH username and password fields
// remain blank - although the PSW field is now a text field.
//return;
if(p.value!="")
{
console.log("clear");
p = "";
}
// as soon as I do this the browser re-fills the input boxes!
p.setAttribute("type","password");
}
DOM(function(){
console.log("run DOM");
setTimeout(1000,clearPSW());
});
是否有任何方法或取决于用户是聪明的,而不是在浏览器中存储密码等?显然,我正试图处理这些不安全的人,迫使他们每次都重新输入密码。
谢谢!
Chrome等浏览器现在会忽略autocomplete=off
。
是否存储密码实际上取决于用户。如果他们这样做了,他们应该在不在电脑前锁定桌面,并且不要与他人共享他们的操作系统帐户。
你可能会争辩说,关闭自动完成意味着用户要么选择一个非常容易猜的密码,要么他们会把它写在便利贴上,然后贴在键盘上。
在"真实"密码字段之前包含一个隐藏密码字段:
<input type="password" style="display:none"/>
<input type="text" name="username"/>
<input type="password" name="password"/>
这工作!
我的解决方案是:
- 将HTML内的输入类型从
type="password"
更改为type="text"
-
编写脚本,将输入类型从
type="text"
更改为type="password"
假设输入有
id="pwd"
。然后:document.getElementById('pwd').setAttribute('type', 'password')
-
设置调用此函数的延迟(因为如果不这样做,大多数浏览器仍然会插入缓存的密码)。当延迟> 1400时,我的浏览器停止这样做:
setTimeout(
() => document.getElementById('pwd').setAttribute('type' 'password')
, 1500)
- 想要将密码类型存储在 JavaScript 变量中
- 将密码存储在Javascript变量中的安全含义是什么
- 将客户端生成的密码短语存储在chrome.storage.local中的安全含义
- 在客户端JavaScript中存储Web应用程序的用户密码 - 这是安全的吗?
- 如何存储我的节点 mysql 密码而不是纯文本
- 如何安全地将密码存储在angularjs中
- HTML5 本地存储不存储密码框中的值
- 如何使浏览器在登录后提供密码和电子邮件存储
- 如何对本地存储数据进行密码保护
- 会话存储中的密码
- 使用js比较存储在PHP会话变量中的密码与新输入的密码
- 如何在使用不同的身份验证机制时安全地存储密码
- 在不设置服务的情况下安全地存储数据库密码
- 存储登录到第三方api的密码
- 如何停止浏览器存储密码值
- 用户登录后哈希和存储密码在mysql节点bcrypt的最佳实践
- 使用Node.js和MongoDB存储密码
- 如何在数据库中存储CryptoJS加密密码
- 在安装时将用户登录/密码输入存储在Greasemonkey脚本中
- 这有多糟糕?将密码存储在javascript中