Требования к безопасности cookie в ASP.Net Identity
То, как я понял это из чтения по всей сети, заключается в том, что претензии становятся хранимыми как файлы cookie, теперь я добавляю роли пользователя в коллекцию Claims и, таким образом, он будет сохранен в Cookies Claims. Теперь это здорово, так как это избавит меня от круглого отключения базы данных, чтобы получить роль пользователя каждый раз, когда у меня есть атрибут авторизации для проверки в моем контроллере ASP MVC
.
- Это безопасно?
- Может ли файл cookie быть расшифрован, если он украден?
- Есть ли альтернатива не сохранять претензии в Cookie и сохранять ее
сервер и это эффективно, или я очень переживаю?
Ответы
Ответ 1
Файлы cookie в значительной степени являются стандартным способом ведения сеанса аутентификации для веб-сайта. Если вы не используете механизм cookiless, который передает сеанс как строку запроса и, как было показано, менее безопасен. Если вы сохраняете претензии в cookie или нет, вы все еще полагаетесь на механизм безопасности файлов cookie, чтобы поддерживать идентификацию клиента между образами страниц. Механизм существует уже много лет и считается безопасным до тех пор, пока вы следуете рекомендациям по внедрению от Microsoft.
Предполагая, что вы используете .NET 4.5 или .NET 4.0 с WIF-библиотеками, вы можете кэшировать претензии на сервере и не отправлять их в файл cookie. Вот базовая документация. Обычно рекомендуется, если у вас много претензий, и файл cookie становится слишком большим, чтобы переносить каждую страницу.
Ответ 2
Как писал Олег, стандартное шифрование файлов cookie считается безопасным.
Обсуждение здесь < Кэширование на стороне сервера с аутентификацией Owin > может быть интересным.