如何使用 Identity 防止 ASP.NET MVC Web 中的会话劫持?

问题描述 投票:0回答:1

背景:

  • 我有 .Net MVC 4.8 应用程序,带有 Identity 和 Owin 2.2.4。

  • 它启用了 ApplicationCookie 的 2FA,并且工作得很好。

  • 查看以下

    Startup.ConfigureAuth
    的实现以了解更多信息。

    app.UseCookieAuthentication(new CookieAuthenticationOptions
    { 
        AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
        LoginPath = new PathString("/Account/Login"),
        ExpireTimeSpan = TimeSpan.FromMinutes(30),
        SlidingExpiration = true,
        CookieSecure = CookieSecureOption.Always,
        CookiePath = "/",
        CookieSameSite = SameSiteMode.Strict,
        Provider = new CookieAuthenticationProvider
        {
            OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
              validateInterval: TimeSpan.FromMinutes(10),
              regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
      }
    });
    
  • 这就是我在 AccontController 中登录用户的方式

    private async Task SignInUser(ApplicationUser user, string authType)
    {
        await UserManager.UpdateSecurityStampAsync(user.Id);
    
        var identity = await UserManager.CreateIdentityAsync(user, authType);
        var authProperties = new AuthenticationProperties { IsPersistent = false };
    
        AuthenticationManager.SignIn(authProperties, identity);
    }
    

新要求:

  • 如果用户复制
    .AspNet.ApplicationCookie
    cookie 并将其粘贴到单独的浏览器中,就可以登录,这会导致 VAPT 失败和会话劫持。
  • 现在,我知道如果有人有这个 cookie,那么他们应该能够登录。但在这种情况下,特别是,我希望用户重新登录,即使他们有 cookie 并尝试在另一个浏览器中运行。

到目前为止我考虑过的方法:

  • validateInterval
    中使用了短暂的
    CookieAuthenticationProvider
    (如TimeSpan.FromSeconds(10))作为OnValidateIdentity,它工作得很好,但经过我的研究,我发现它会增加服务器负载并影响性能,因为它必须每十秒查询一次数据库或用户存储。
  • 在登录期间存储设备或 IP 信息,并根据当前会话数据进行验证。

但我不确定这是否是一个好主意,所以只是想确认是否有比这更合适的方法。

我的问题是如何确保用户即使复制应用程序cookie也无法在不同的浏览器中登录,在这种情况下,我如何提示他们重新登录?

任何建议或见解将不胜感激。谢谢!

c# asp.net-mvc owin asp.net-identity-2
1个回答
0
投票

您可以使用FingerprintJS。这是一个浏览器指纹识别库。试用版为14天试用期。

© www.soinside.com 2019 - 2024. All rights reserved.