【问题标题】:Javascript Vue or React storing sensitive information client side safetyJavascript Vue 或 React 存储敏感信息客户端安全
【发布时间】:2018-11-28 23:58:28
【问题描述】:

例如,我有一个 Vue.js 应用程序。加载应用程序时,我通过 HTTPS 从服务器获取一些敏感数据并将其存储在 Vuex Store 客户端。

是否有人可以通过浏览器中的开发人员工具或其他方式读取该数据?安全吗?有没有办法让别人以同样的方式写信给 Vuex 商店?

【问题讨论】:

  • 如果你真的需要将敏感数据保存到客户端,你最好加密它。检查encryption in client side,这可能会有所帮助。

标签: javascript reactjs security vue.js single-page-application


【解决方案1】:

是否有人可以通过浏览器中的开发者工具或其他方式读取该数据?

是的。你只需要一个 Vue 组件的引用,然后你就可以访问它的$store 属性。

在开发工具中,选择 DOM 中与 Vue 组件对应的元素。然后在控制台中输入:

$0.__vue__.$store

并且您可以访问 Vuex 商店。 $0 对应于选中的 DOM 元素。

一般来说,您应该始终假设用户可以通过一种或另一种方式访问​​所有客户端数据。您可能有一些方法可以“隐藏”这些数据,或者使其更难访问。

【讨论】:

  • 感谢提供示例,这完全有效。我不知何故认为这是不可能的。
【解决方案2】:

在这方面,开发者控制台可以被视为应用程序的一部分。您可以在代码中执行的任何操作也可以在控制台上完成。如果您的应用可以访问某些内容,那么用户也可以。

而且比这更糟糕。即使您的用户不关心客户端存储,因为无论如何这是他的数据,如果您的应用容易受到 XSS 攻击,利用它的恶意用户也可以访问客户端存储中的任何数据。

除此之外,如果您在客户端存储一些内容,它可能会被写入磁盘(cookies、websql 等)。因此,如果攻击者即使在应用程序上下文之外也可以访问客户端 PC,他也将能够访问此类数据。

所以简而言之,就是不要在客户端上保存敏感数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-05
    • 1970-01-01
    • 2012-12-26
    • 2017-06-01
    • 2020-01-14
    • 1970-01-01
    • 1970-01-01
    • 2021-09-02
    相关资源
    最近更新 更多