使用 cookie 或 http 会话变量存储会话以获得可扩展的解决方案?

发布于 2024-10-19 19:58:49 字数 144 浏览 1 评论 0原文

我有一个网络应用程序,它在登录过程中将 userId 存储在 http 会话变量中(当然是在确认之后!)。除了这个变量之外,我没有使用任何会话变量来检索有关用户的信息。我不知道这对我来说是否是最具可扩展性的解决方案。我的服务器是否为此预留了内存?使用 cookie 更好吗?

I have one web app which under the login process stores the userId in a http session variable(After confirmation of course!). I'm not using any session variables other than this one to retrieve information about the user. I don't know if this one is the most scalable solution for me yet. Do my server reserve any memory for this? Is it better to use cookies instead?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

在梵高的星空下 2024-10-26 19:58:49

如果您使用多个应用程序服务器(现在或将来),我相信 http 会话变量取决于用户所在的服务器(如果我错了,请纠正我),所以在这种情况下,您可以找到一个“粘性会话”解决方案将用户锁定到特定服务器(例如 EC2 的负载均衡器提供此功能:http://aws.amazon.com/about-aws/whats-new/2010/04/08/support-for-弹性负载平衡中的会话粘性/)。

我建议使用 cookie(假设我上面的逻辑是正确的),但您应该确保对此采取某种安全措施,以便用户无法更改其 cookie 并获得对其他用户帐户的访问权限。例如,您可以使用密钥和用户 ID 对某个字符串进行哈希处理,您可以在服务器端检查该字符串以确认其未被篡改。

If you are using multiple application servers (now or in the future), I believe the http session variable is dependent to the server the user is on (correct me if I'm wrong), so in this case, you can find a "sticky session" solution that locks the user to a particular server (e.g. EC2's Load Balancers offer this: http://aws.amazon.com/about-aws/whats-new/2010/04/08/support-for-session-stickiness-in-elastic-load-balancing/ ).

I recommend using a cookie (assuming my logic above is right), but you should make sure you have some sort of security measure on that so users can't change their cookie and gain access to another user's account. For example, you could hash some string w/ a secret key and the user ID which you check server-side to confirm it has not been tampered with.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文