代码之家  ›  专栏  ›  技术社区  ›  AviD

使用Windows身份验证的会话管理

  •  6
  • AviD  · 技术社区  · 15 年前

    在使用集成Windows身份验证的ASP.NET Web应用程序中,会话是否与Windows标识绑定?
    换句话说,如果我(使用iwa)登录到应用程序,并且应用程序在我的会话中存储了一些“东西”,那么这些东西是否可以通过会话ID单独访问?例如,如果一个恶意的人设法窃取了我的会话ID,而不是我的凭据,那么他可以访问我的会话资料吗?或者此会话只能访问同一身份,需要 二者都 要访问的会话ID和Windows标识?

    1 回复  |  直到 15 年前
        1
  •  4
  •   slugster Joey Cai    15 年前

    好问题。在我写这个答案之前,我刚做了一个测试来确认。

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

    • 使用IWA登录到网站的人员A将获得分配的会话ID(例如,在URL中)
    • 个人B也以自己的身份登录网站(因此他们必须经过认证)
    • 人员A向人员B发送包含会话标识符的URL链接
    • 人B点击那个链接,他们直接进入网站,使用人A的会话细节。

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

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