在标准ASP.Net MVC Identity 2.0 Owin实现的几个地方,你会看到rememberBrowser,如:
await signInManager.SignInAsync(user, isPersistent: isPersistent, rememberBrowser: false);
如果你将rememberBrowser设置为true,我注意到我可以杀死浏览器,杀死IIS Express,删除浏览器登录的用户,甚至重启我的机器,浏览器仍被视为登录。不太好,考虑到被删除的用户被视为授权/登录会导致[Authorize]
属性后面的代码中的各种问题,这些问题需要有效的用户使用。
那么rememberBrowser究竟做了什么,是否有人冒险将cookiesBrowser伪造成绕过OWIN登录?似乎[Authorize]
的目的是保证除登录用户之外没有人访问给定的Controller Action,并且rememberBrowser似乎是该保证中的漏洞。
奖金问题:有没有办法禁用rememberBrowser,这样即使伪造的cookie确实进来,它也会被拒绝?
答案 0 :(得分:7)
我认为 rememberBrowser 仅与双因素身份验证相关。因此,如果将其设置为true,浏览器将获取 TwoFactorRememberBrowser cookie,允许用户在登录过程中跳过2FA身份验证(如果已启用)。
有没有办法禁用rememberBrowser,即使是伪造的 cookie确实进来了,它会被拒绝吗?
从rememberBrowser创建的cookie与身份验证cookie一起使用。它只允许用户跳过2FA,因此没有首先进行身份验证就没用了。