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

Purging sensitive data (password) after use in angularjs

本文关键字:敏感数据 密码 清除 angularjs      更新时间:2023-09-26

我有一个带有"apply signature"按钮的表单,每次它都要求签名密码将其传递给签名小程序。

但是,如果用户离开PC解锁,并且未经授权的人在会话过期之前获得了对浏览器的物理访问,那么这个人可以通过观察角作用域从开发控制台获取密码。

有任何角度的方法来防止它吗?如果我想在使用后手动清理密码,我应该检查范围后面的其他地方吗?

我使用了以下解决方案:

angular作用域中的

handler函数直接将password设置为一个js闭包(绕过angular作用域),它的作用类似于value getter。然后,当value被getter获取时,闭包将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;