6

在使用集成Windows身份验证的ASP.NET Web应用程序中,会话是否与Windows身份绑定在一起?
换句话说,如果我登录(使用IWA)到应用程序,并且应用程序在我的会话中存储了一些“内容”,是否可以通过会话ID单独访问这些内容?例如,如果一个恶意的人设法窃取我的会话ID,但不是我的凭据,他可以访问我的会话内容吗?或者这个会话只能访问相同的身份,需要这两个会话ID和Windows身份来访问它?使用Windows身份验证的会话管理

回答

4

优秀的问题。在我写这个答案之前,我刚刚进行了测试以确认。

如果我是“人A”,你是“人B”,那么这就是有发生:

  • 在使用IWA网站某甲日志,被分配一个会话ID(例如,在URL)
  • 者B也登录到网站,作为本身(因此它们必须被认证)
  • 人A发送个人B包含会话标识符
  • 人员B的点击一个URL链接在那个链接上,他们使用Person A的会话细节直接进入网站

请注意,即使他们正在使用人员A的会话详细信息,但仍然通过网站将人员B识别为“人员B”。因此,如果你有检查用户权限等的代码,那么这些检查仍然是在人员B的情况下完成的。

这听起来像是一个大问题,但它不是真的只要程序员不是不小心。例如,Person B在我的测试中得到的唯一效果是他们继承了Person A设置的屏幕和网格布局,因为我们正在进行权限检查(即,它们没有被缓存)。如果您将敏感数据存储在会话中,那么这可能是一个问题,但是如果它们显示每次显示时没有权限检查的字段,则这只是一个问题。如果Person A的会话没有过期,那也只是一个问题。

+0

更“无辜”的场景的好例子:)。那么你是说会话和身份验证没有任何关系?这很奇怪......在会话中存储角色或其他授权令牌实际上很常见,这会在此场景中导致此问题严重。谢谢。 – AviD 2009-11-17 02:01:20