在Vuex中存储敏感数据

时间:2019-10-03 13:02:48

标签: javascript security vue.js vuex encode

总而言之,我们在前端使用Vue,在后端使用Hapi JS。前端使用MSAL.js对用户进行身份验证,然后将访问令牌传递给后端。访问令牌用hapi-auth-jwt2解码,并且validate()函数返回{ isValid: true, credentials : { ps_ref: 12345, md_userid: asfasgsg@5874.com }}。然后将此对象传递给路由的处理程序功能,该路由从我们的数据库和用户数据中提取身份验证组/用户角色(即Auid)并返回。

假设用户对象看起来像这样:

{
  Auids: (4) ["user", "webadmin", "accounts"]
  md_clock: 5678
  md_picture: "./images/"
  ps_fname1: "Test Name"
  ps_surname: "Test Surname"
  psname: "Test Name Test Surname"
  psref: 125125
}

现在,我们想将此对象存储在Vuex中,但是,我们担心,对于在浏览器中安装了Vue Devtools的任何人或执行类似rootElementOfApp.__vue__.$store

我们的问题是:

  1. 有人在生产中访问Vuex有多容易?

  2. 如果公众很容易访问Vuex,Vuex是存储该对象的最佳方法吗?如果我们选择Vuex,是否应该对用户对象或其中的Auid进行编码?

1 个答案:

答案 0 :(得分:1)

您存储在js / html / cookies中的所有内容都不是单独保存的。但这与您如何管理它有关。基本上,您可以将几乎所有内容存储在前端,只要不是对道德黑客有用的敏感数据即可。地址,合同号,银行帐户等内容。

诸如userIds(仅出于编程目的而长期使用)或用户角色之类的数据可以存储在前端。但是,如果您做对了,您的后端应用程序中也将始终具有所有客户端验证。

就Vue的开发工具而言,它们仅在开发模式下可用,而在生产模式下不可用。但是好黑客并不介意。