在本地存储中存储会话密钥

Posted

技术标签:

【中文标题】在本地存储中存储会话密钥【英文标题】:Storing session keys in localstorage 【发布时间】:2014-10-22 11:12:29 【问题描述】:

好的,我有一个用 node.js 编写的 API,我正在尝试向其中添加会话功能。 API 完全是 RESTful。当用户登录时,我将带有 GET ajax 调用的用户/密码组合发送到 /login 端点。然后服务器将密码加盐并将其与存储在我的 mongo db 中的哈希值进行比较。然后它将根据登录的成功以 true 或 false 响应。

我想要实现的是:当用户输入有效的登录名时,服务器会生成一个会话密钥。此密钥存储在用户文档中的 mongo 中。此会话密钥随后与 GET 请求一起返回。然后,此会话密钥将包含在所有未来请求的 JSON 正文中,以允许用户访问其帐户信息。

我的问题:将此会话密钥存储在浏览器的 localStorage 或 sessionStorage 中是否安全?这会使用户面临任何漏洞吗?

【问题讨论】:

那么你想在浏览器中存储会话密钥而不是 MongoDB? 不,我想将它存储在 MongoDB 和 sessionStorage 中,以便会话密钥可以包含在每个 RESTful AJAX 调用中。 【参考方案1】:

这里有一个指向secruity.stackexchange 的链接,它解释了可能存在的漏洞。根据 W3C,网络存储对于sensitive data 是安全的。

【讨论】:

没问题!我最近经常使用会话和本地存储。客户端存储解决方案肯定不是完美的,因为它们可以在不同的浏览器中以不同的方式实现,所以没有真正的“解决方案”。

以上是关于在本地存储中存储会话密钥的主要内容,如果未能解决你的问题,请参考以下文章

原生JavaScript实现本地存储(localStorage)和会话存储(sessionStorage)

可以禁用会话存储/本地存储并启用 Cookies 吗?

本地存储和云存储之间的区别

本地存储(Local Storage) 和 会话存储(Session Storage)

将敏感数据存储在本地存储或会话存储中是不是安全? Localstorage 允许对敏感数据进行任何攻击

cognito 用户会话被持久化,而不在本地存储中存储令牌