这不是严格意义上的 GWT 问题,但由于我提出这个问题的上下文是 GWT。我包含了 GWT 和 servlet 标签。
由于多个请求可以属于同一个 session ,并且每个请求都有一个与之关联的远程用户(空或非空),这让我想知道是否可以在一个 session 中有不同的用户。
假设用户使用不同的帐户登录、注销并重新登录,我们是否仍在服务器端的同一个 session 中?
编辑以解决 BalusC 的回答引起的歧义: - 我不是在问“同时”有多个用户。问题是是否可能有多个用户进入同一 session 。
最佳答案
你的问题比较含糊。
Is it possible to have multiple users in the same HTTP session
这取决于您如何定义“用户”。
如果是登录用户(通常存储在 HTTP session 中/与 HTTP session 关联),那么这是不可能的。同一时间只能有一个。
但是,如果是客户端,那么绝对有可能有多个客户端共享同一个 session (本质上也是完全相同的登录用户)。这可以通过 session fixation attack 实现这可以在 cross site scripting 的帮助下执行.基本上,当多个客户端使用完全相同的 JSESSIONID
cookie 时。
Let's say a user logs in, logs out and relogs in using a different account, are we still in the same session on the server side?
这与标题中提出的问题本质上是不同的问题。在考虑“同时”时,这里绝对没有“同一 session 中的多个用户”的意思。
无论如何,当注销不会使 session 失效时,这违反了“惯例”,那么这确实是很有可能的。
另见:
关于http - 是否可以在同一个 HTTP session 中有多个用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16431907/