在本地存储中存储会话密钥
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)
本地存储(Local Storage) 和 会话存储(Session Storage)