Javascript 如何为多个用户处理本地存储?

Javascript 如何为多个用户处理本地存储?,javascript,html,local-storage,Javascript,Html,Local Storage,如果您希望在localStorage中存储依赖于用户的数据(例如,由于多个用户可以为您的站点使用相同的浏览器),您通常如何处理这种情况 让我们想象一下,我能够在前端用一个独特的userId来识别用户。我可能会这样做: // retrieve the data data = JSON.parse( window.localStorage.getItem( userId ) ) || {}; // persist the data window.localStorage.setItem( user

如果您希望在
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在运行中对其进行保护


如果确实要在本地存储仅对该计算机上的一个用户、一台计算机和一个浏览器可用的内容,可以提示输入密码并使用该密码加密/解密存储在本地存储中的数据。除了一个临时的离线活动,我目前不确定为什么这会是一个更好的用户体验,而不是将其存储在一个无论用户如何访问互联网都可以使用的服务器上。在如今的移动接入、平板电脑接入、笔记本电脑接入等时代。。。现在的趋势似乎更倾向于将数据存储在云中,这样一个给定的用户就可以通过他们可能使用的任何互联网访问方式访问他们的数据,而不是要求他们使用完全相同的计算机。

如果你问的是这样的话,这是不安全的。这些信息有多机密?除非JSON有自己的身份验证机制,否则用户可能很容易伪造自己的身份。@Mö。我还没有充分考虑到这一点,但现在,让我们假设它不是敏感数据。例如,只是一些琐碎的偏好。@all:你知道吗,实际上,让我们假设数据确实是敏感的,因为这可能是我最终想要使用它的原因。1。2.用ex.加密客户端数据怎么样?您可以使用标准RSA密钥。请注意,如果敏感数据以不可延展的方式通过MAC进行加密和保护,则可以在客户端上存储敏感数据。您的web框架可能提供了一种实现这一点的方法;如果没有,除非你是密码学方面的热门人物,否则不要麻烦自己滚动。好吧,我想按照@chester1000在我问题下面的评论,用用户密码(I.c.w.AES或类似的东西)加密本地数据。我想在你可能听说过的类似想法的基础上再接再厉。