每个人都知道你不应该在你的js代码中保留sensitiveInfo
变量。更好的方法是将其放在本地存储中。你可以借助我的例子解释第一种方法的漏洞吗?
示例:
您使用bundler,它将所有js文件捆绑在一起。 sensitiveInfo
不是全局的,而是存储在YourStorage.js
中。要访问保存它的文件:
import YourStorage from 'somepath/YourStorage';
YourStorage.sensitiveInfo = newValue; // QUESTION: can you steal this value? Is it accessible from console?
问题:
sensitiveInfo
变量?sensitiveInfo
?更新:(我正在努力保护谁?)我正在编写移动网络应用,用户可以花钱购物。我想保护他们免受各种攻击,他们可以放钱(即本地安装的病毒)
答案 0 :(得分:2)
可以在用户设备上轻松看到任何可下载的javaScript内容。保护必须来回传递给客户的敏感信息的最常用方法是:
首先,使用SSL通过“电线”加密信息。
其次,如果数据具有非常敏感的性质 - 例如用于处理信用卡信息的令牌(不要将卡号存储在此令牌中!) - 应使用种子/密钥对数据进行自身加密安全地存储在应用程序服务器上。
通常,您会编写应用程序以同时要求验证用户身份和设备。验证完成后,您将使用仅存储在应用程序服务器端的密钥解密令牌。
使用这种做法,您可以合理地假设用户和设备是他们所说的人。当然,这些应用程序本身需要适当的身份验证 - 所述凭证不存储在设备上 - 以防止被盗设备被轻易地用于访问应用程序帐户/数据。不要仅仅依靠设备屏幕锁定来保证安全。