6

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

4

1 回答 1

4

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

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

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

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

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

于 2009-11-17T01:53:36.247 回答