如果您想在localStorage中存储依赖于用户的数据(例如,因为多个用户可以为您的站点使用相同的浏览器),您通常如何处理这种情况?
让我们想象一下,我能够在前端识别出类似于唯一userId的用户.我可能会做以下事情:
// retrieve the data data = JSON.parse( window.localStorage.getItem( userId ) ) || {}; // persist the data window.localStorage.setItem( userId,JSON.stringify( data ) );
这是一种天真的做事方式吗?
编辑:
根据@MДΓΓБДL及其他评论稍微考虑之后,让我们假设数据是敏感的.在这种情况下,上面的例子确实是天真的.在这种情况下如何处理敏感数据的任何想法?或许是答案:不要这样做,把它保存在后端?
解决方法
敏感数据应该永远不会存储在客户端上.除非您能保证计算机的物理安全性和/或保证该计算机上的登录用户只能使用计算机(两者通常都不正确),否则不要将敏感信息存储在计算机上客户,如果你可以避免它.
将敏感信息存储在服务器上并且在将该信息提供给浏览器之前需要适当的登录凭证要安全得多.然后,您可以控制服务器上数据的物理安全性,并防止任何用户访问不属于他们的数据.此外,您可以使用SSL保护它在飞行中.
如果您确实要在本地存储只能由一台用户和一台计算机以及该计算机上的一台浏览器使用的内容,则可以提示输入密码并使用该密码加密/解密存储在本地存储中的数据.除了临时离线活动之外,我目前还不确定为什么这会比将其存储在服务器上更好的用户体验,无论用户如何访问互联网,都可以使用该服务器.在移动访问,平板电脑访问,笔记本电脑访问等方面……似乎趋势更多的是将内容存储在云中,以便给定用户可以通过他们可能使用的任何互联网访问方式访问他们的数据而不是要求他们使用完全相同的计算机.