Windows身份验证的会话管理

Avi*_*viD 6 asp.net iis windows-authentication session-management session-hijacking

在ASP.NET Web应用程序中,使用集成Windows身份验证,会话是否与Windows身份相关联?
换句话说,如果我登录(使用IWA)到应用程序,并且应用程序在我的会话中存储了一些"东西",这个东西是否仅由会话ID访问?例如,如果恶意某人设法窃取我的会话ID,但不是我的凭据,那么他可以访问我的会话内容吗?或者是这个会话只能访问相同的身份,要求两者的会话ID和窗户的身份来访问它?

slu*_*ter 4

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

如果我是“A 人”,而你是“B 人”,那么就会发生以下情况:

  • 人员 A 使用 IWA 登录网站,并被分配一个会话 ID(例如,在 url 中)
  • B 也以自己的身份登录网站(因此必须经过身份验证)
  • A 向 B 发送包含会话标识符的 url 链接
  • B 单击该链接,他们会使用 A 的会话详细信息直接进入该网站

请注意,尽管 B 正在使用 A 的会话详细信息,但网站仍将其识别为“B”。因此,如果您有检查用户权限等的代码,那么这些检查仍然在人员 B 的上下文中完成。

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