在angularjs中使用后清除敏感数据(密码)

时间:2014-05-23 09:00:44

标签: javascript angularjs security angularjs-scope

我的表格是"申请签名"按钮,每次要求签名密码将其传递给签名小程序。

但是如果用户离开PC并且未经授权的人在会话到期之前获得了对浏览器的物理访问,则此人可以通过观察角度范围从开发者控制台获取密码。

有没有任何角度方法可以阻止它?我应该检查范围后面的其他地方是否要在使用后手动清除密码?

1 个答案:

答案 0 :(得分:0)

我使用了以下解决方案:

角度范围内的

处理函数将密码直接设置(绕过角度范围)到js闭包,其作用类似于值getter。然后,当getter检索到value时,closure将value设置为零。此解决方案应保证一次性读取密码值。

<强>脚本

var pwdWrapper = (function() { 
    var pwd = null;
    return {
        set: _.bind(function(val) { 
            pwd = val; 
        }, this),
        get: _.bind(function() { 
            var tmp = pwd; pwd = null; return tmp; 
        }, this)
    }
})();

$scope.setpwd = pwdWrapper.set;

<强> HTML

<input id="pwd" type="password"/> 
<button ng-click="set($('#pwd').value())"/>