【发布时间】: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/… 这假设浏览器遵循这些规则。用户可以选择(有意或无意地,在恶意软件的情况下)对存储在他们机器上的任何数据做任何他们想做的事情。您的安全问题实际上是用户与您的服务器端应用程序交互的地方。与其说用户对他们被允许拥有的信息做什么。