gpt4 book ai didi

javascript - 在 javascript 变量中保存密码 - 安全隐患?

转载 作者:可可西里 更新时间:2023-11-01 02:46:42 24 4
gpt4 key购买 nike

在浏览器的 javascript 变量中保存用户密码是否会暴露任何特定的安全漏洞,除了基于浏览器的客户端的常见安全漏洞之外?

将此代码段视为一个简单示例 - jsfiddle here

<label for="password">Password</label>
<input type="password" id="password"/><br/><br/>
<button type="button" id="pwdButton">Store password in window.password</button>

<script>
function getContentsOfPasswordField() {
return jQuery("input#password").val();
}

jQuery("button#pwdButton").on("click", function() {
window.password = getContentsOfPasswordField();
alert("'" + password + "' stored in global var window.password")
});
</script>

在此示例中,密码变量是全局变量,并在页面的生命周期内持续存在,只是为了使其尽可能容易受到攻击并给出最坏的情况。也许限制变量的范围/生命周期可以保护它免受某些类别的攻击?

立即想到的攻击是 XSS,但如果客户端首先容易受到 XSS 攻击,攻击者无论如何都可以通过键盘记录读取密码(请参阅 this),因此将其保存在变量中不会',据我所知,增加了对 XSS 攻击的脆弱性。

请注意问题的重点并不是这样做是否是一种不好的做法,这更像是一个关于客户端网络应用程序安全性的基本问题。

最佳答案

将密码保留在变量中可以使人们可以通过浏览器工具轻松访问它!假设按下存储密码按钮时调用的函数将密码存储在名为 password 的变量中。即使之后这个变量根本没有在页面上使用,只是稍后在代码的某个地方处理,所有要做的就是在他们的浏览器中打开开发人员工具,添加像 alert(password ); 和 Bam,密码字面意思是在他们面前弹出。

不可否认,任何简单到足以让某人这样做的代码可能都不值得放在网络上,更不值得被干涉,但我想这是一个教训,让我们了解到我们到底有多脆弱。

关于javascript - 在 javascript 变量中保存密码 - 安全隐患?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18153635/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com