相关疑难解决方法(0)

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

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

考虑这个片段作为一个简单的例子 - jsfiddle在这里

<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>
Run Code Online (Sandbox Code Playgroud)

在此示例中,密码变量是全局的,并且在页面的生命周期内持续存在,只是为了使其尽可能地打开攻击并提供最坏情况.也许限制变量的范围/生命周期可以保护它免受某些类型的攻击?

立即想到的攻击是XSS,但是如果客户端首先容易受到XSS的攻击,那么攻击者无论如何都可以通过密钥记录来读取密码(请参阅此内容),因此将其保存在变量中不会正如我所看到的,增加了对XSS攻击的漏洞.

请注意问题的关键不在于这样做是否是一种不好的做法,这更多是关于客户端Web应用程序安全性的基本问题.

javascript security passwords xss client-side

11
推荐指数
1
解决办法
2603
查看次数

标签 统计

client-side ×1

javascript ×1

passwords ×1

security ×1

xss ×1