В нескольких местах в стандартной реализации ASP.Net MVC Identity 2.0 Owin вы увидите memoryBrowser, например:
await signInManager.SignInAsync(user, isPersistent: isPersistent, rememberBrowser: false);
Если вы установите для параметра rememberBrowser значение true, я заметил, что могу убить браузер, убить IIS Express, удалить пользователя, в который был занесен браузер, даже перезагрузить мою машину, и браузер по-прежнему обрабатывается как зарегистрированный, в. Не так уж и важно, учитывая, что удаленный пользователь, получивший авторизацию/вход в систему, будет вызывать всевозможные проблемы в коде за атрибутом [Authorize]
, который ожидает, что у него будет действительный пользователь.
Так что же это такое, что помнит Browser, и есть ли риск, что кто-то может просто подделать rememberBrowser в своих файлах cookie, чтобы обойти вход OWIN? Кажется, что точка [Authorize]
заключается в том, чтобы гарантировать, что никто, кроме зарегистрированных пользователей, не получит доступ к данному действию контроллера, и помните, что Browser кажется дырой в этой гарантии.
Бонусный вопрос: есть ли способ отключить memoryBrowser, чтобы даже если подделанный куки файл действительно пришел, он был бы отклонен?