【发布时间】:2015-05-13 23:51:36
【问题描述】:
背景:
我正在对具有登录功能的应用程序执行一些测试。客户端登录服务器,服务器向它发送一个身份验证令牌和一个用户 ID。客户端在下一个请求中使用令牌和用户 ID 来验证自己。
我不太熟悉此类登录会话的工作原理。我对需要确认的一件事感到困惑。
问题:
应用程序的工作方式是在 HTTP 请求中发送令牌和用户 ID 以从服务器检索敏感数据,但在某些请求中仅发送用户 ID 以检索敏感数据。
令人困惑的是,服务器需要知道它正在与经过身份验证的客户端交谈。服务器通常使用会话 ID 或会话令牌对其进行验证。当我的客户端应用程序只发送“用户 ID”时,为什么服务器会响应它,并给它敏感数据......
在某些应用程序中,我看到会话 ID 和用户 ID 具有相同的值(单独的实体但具有相同的值),因此在我的应用程序中,“用户 ID”可能代表“会话 ID”。但是为什么服务器会同时发送会话令牌和会话 ID...所以,我的问题是
服务器可以同时发送会话令牌和会话 ID,还是必须(或大部分)只发送其中一个?
我的主要问题是以上一个,以下是次要问题:
“会话 ID”和“用户 ID”通常相同还是不同?如果这些不同,那么用户 id 是某个会话变量还是与会话无关的东西,例如服务器数据库中的用户 id?
P.S.:我不确定它是否适合这个问题。让我知道它是否需要移动到其他堆栈交换站点。
【问题讨论】: