作为示例,我有一个Vue.js应用程序。加载应用程序后,我通过HTTPS从服务器获取了一些敏感数据,并将其存储在Vuex Store客户端中。
有人可以通过浏览器中的开发人员工具或其他方式读取该数据吗?安全吗?有人可以以相同的方式写信给Vuex商店吗?
答案 0 :(得分:3)
有人可以通过浏览器中的开发人员工具或其他方式读取数据吗?
是的。您所需要的只是对Vue组件的引用,然后您可以访问其$store
属性。
在开发工具中,选择DOM中与Vue组件相对应的元素。然后在控制台中输入:
$0.__vue__.$store
,您就可以访问Vuex商店。 $0
对应于所选的DOM元素。
通常,您应该始终假定用户可以以一种或另一种方式访问所有客户端数据。可能有一些方法可以“隐藏”此数据,或者使之难以访问。
答案 1 :(得分:1)
在这方面,开发人员控制台可以视为应用程序的一部分。您在代码中可以做的任何事情也可以在控制台上完成。如果您的应用可以访问某些内容,那么用户也可以访问。
甚至比那更糟。即使您的用户不关心客户端存储(因为无论如何都是他的数据),如果您的应用程序容易受到XSS的攻击,利用它的恶意用户也可以访问客户端存储中的任何数据。
此外,如果您将某些内容存储在客户端上,则可能会将其写入磁盘(cookie,websql等)。因此,如果攻击者即使在应用程序上下文之外也可以访问客户端PC,他也将能够访问此类数据。
因此,简而言之,不要在客户端上保留敏感数据。