13

如果您想在其中存储与用户相关的数据localStorage(例如,因为多个用户可以为您的站点使用同一个浏览器),您通常如何处理这种情况?

让我们想象一下,我能够userId在前端使用独特的东西来识别用户。我可能会做类似以下的事情:

// retrieve the data
data = JSON.parse( window.localStorage.getItem( userId ) ) || {};

// persist the data
window.localStorage.setItem( userId, JSON.stringify( data ) );

这是一种幼稚的做事方式吗?

编辑: 根据@MДΓΓ БДL 和其他评论对其进行更多思考后,让我们假设数据是敏感的。在那种情况下,上面的例子确实很幼稚。在这种情况下如何处理敏感数据有什么想法吗?或者答案可能是:不这样做,将其保存在后端?

4

1 回答 1

4

敏感数据几乎不应该存储在客户端上。除非您可以保证计算机的物理安全和/或保证该计算机上的登录用户永远是使用该计算机的用户(这两者通常都不正确),否则不要将敏感信息存储在客户如果可以避免的话。

将敏感信息存储在服务器上并要求适当的登录凭据在将这些信息提供给浏览器之前要安全得多。然后,您可以控制服务器上数据的物理安全性,并防止任何用户访问不属于他们的数据。此外,您可以使用 SSL 在运行中保护它。

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

于 2012-04-25T19:50:57.207 回答