Windows身份验证的会话管理

时间:2009-11-17 00:40:53

标签: asp.net iis windows-authentication session-management session-hijacking

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

1 个答案:

答案 0 :(得分:4)

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

如果我是'A人',而你是'B人',那么这就是必须发生的事情:

  • 人员A使用IWA登录网站,获得会话ID(例如,在网址中)
  • B人也会自己登录网站(因此必须进行身份验证)
  • 人员A向人员B发送包含会话标识符的URL链接
  • B人点击该链接,使用人员A的会话详情直接进入网站

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

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