【问题标题】:$localStorage to store user info$localStorage 存储用户信息
【发布时间】:2018-10-20 16:42:04
【问题描述】:

假设我有一个使用 angularjs 的网络应用程序(虽然不是 SPA)。因为我有一个登录机制,它使用角度 $http 服务来调用适当的路由,一旦验证了凭据,它就会发送一个包含用户信息的 JSON,例如

 {
    firstName : "John",
    lastName : "Doe",
    email : "john.doe@xyz.com",
    profileURI : "somelink.com"
 }

我想将此 JSON 存储在浏览器中,以便可以在多个页面(导航栏内)访问和显示它。

那么,是否推荐/使用 $localStorage 来存储此类数据?有什么安全问题吗?

【问题讨论】:

  • 如果你想在本地存储,本地存储似乎是一个合理的选择。您认为会有哪些安全问题?这些数据中有什么敏感信息吗?
  • 只有姓名、联系电话和个人资料图片链接。我只是担心,因为它在 localStorage 中,任何其他应用程序都可以读取它。
  • 其他应用程序读取这些数据的缺点是什么?那些其他应用程序也在用户的计算机上运行,​​无论如何您都无法控制。您发送给用户的任何信息都可以被用户以及用户选择运行的任何应用程序读取。
  • 所以如果我一天访问多个网站,他们可以捕获所有这些数据,对吗?我有点希望它仅限于它所指的应用程序。您是否知道其他人(例如 twitter、google)如何在各个页面中保留这些信息?每次用户登陆页面时,他们都会调用 API 吗?
  • 我的理解是,本地存储至少每个域都是隔离的,遵循与同源策略相同的规则:stackoverflow.com/questions/4201239/… 这假设浏览器遵循这些规则。用户可以选择(有意或无意地,在恶意软件的情况下)对存储在他们机器上的任何数据做任何他们想做的事情。您的安全问题实际上是用户与您的服务器端应用程序交互的地方。与其说用户对他们被允许拥有的信息做什么。

标签: angularjs local-storage


【解决方案1】:

您有以下 Json 数据。

{
    firstName : "John",
    lastName : "Doe",
    email : "john.doe@xyz.com",
    profileURI : "somelink.com"
 }

您必须将json数据设置为this.myJson = JSON_data之类的变量并将其存储到本地存储中

localStorage.set('varName', this.myJson)

或者 您可以单独设置json数据,并在需要时轻松获取

localStorage.set('firstName', JSON_data.firstName);
localStorage.set('email', JSON_data.email);

并将它们作为

localStorage.get('firstName');
localStorage.get('email');

最好只将需要存储的数据存储在 localStorage 中。您不应将密码等重要数据存储在本地存储中。只应存储您需要的全局/通用数据。

【讨论】:

  • 问题不是关于如何在本地存储中存储数据,而是关于这样做的安全问题
猜你喜欢
  • 1970-01-01
  • 2018-10-06
  • 2016-03-09
  • 2012-05-26
  • 1970-01-01
  • 2012-01-07
  • 1970-01-01
  • 2017-04-21
  • 2019-04-01
相关资源
最近更新 更多