通过将数据存储在会话存储中进行会话管理

Posted

技术标签:

【中文标题】通过将数据存储在会话存储中进行会话管理【英文标题】:session management by storing data in sessionstorage 【发布时间】:2017-12-02 02:12:51 【问题描述】:

我通过使用 AngularJs 将用户数据存储在浏览器的 sessionStorage 中来处理会话。我使用的基本流程如下:

    前端登录 从节点即后端返回用户 将返回的数据存储在 sessionStorage 中 向服务器发送每个请求的用户 ID 退出时清除存储

我的方法正确吗? 如果没有,那么如何在 MEAN 应用程序中有效地管理会话?

【问题讨论】:

【参考方案1】:

将关键数据作为令牌存储到 LocalStorage 或 SessionStorage 绝对不是一个好主意,因为它容易受到 XSS 攻击。

更好的做法是将这些信息存储在 cookie 中...但是,我们还没有在这里完成,因为 cookie 容易受到 CSRF 攻击。

因此,最好的方法是将关键信息存储在 cookie 中,并通过在 SessionStorage 中存储随机生成的会话密钥来保护您的客户端免受 CSRF 的影响。

检查这个答案: CSRF Token necessary when using Stateless(= Sessionless) Authentication?

【讨论】:

以上是关于通过将数据存储在会话存储中进行会话管理的主要内容,如果未能解决你的问题,请参考以下文章

我在 asp.net MVC 中进行会话处理它在查看页面按钮上工作我无法在我的控制器中的另一个操作上获得会话 [重复]

如何在 aspnet 身份中进行会话管理?

会话存储和数据库有啥区别

跨页面存储会话数据最佳实践

PHP存储会话数据,在会话中存储用户ID

在数据库中存储表单登录会话