Я пытаюсь проверить свою аутентичность в ASP.NET Web API 2. В моем приложении я использую шаблон VS 2013, который реализует OAuth 2.0 и использует токен-носитель (например, JWT, как я помню). Мой вопрос: какой лучший способ сохранить токен на стороне клиента. В своей книге Badrinarayanan Lakshmiraghavan описывает токен-носитель какКак перенести токен на предъявителя на стороне клиента
Носитель-носитель - это как наличные деньги: искатели, хранители.
Следовательно, безопасно ли это сохранить в печенье? Разве это не означает, что тот, кто украдет куки, получит полный доступ к приложению? С другой стороны, я мог зашифровать токен, используя хеш, прежде чем сохранять его в файл cookie. Было бы достаточно безопасно? Есть ли другие альтернативы? Я видел несколько вопросов, задающих аналогичный вопрос в stackoverflow, но никогда не нашел удовлетворительного ответа.
«В принципе, вы должны дать маркер для пользователя по защищенному соединению (HTTPS), но они должны вручную отправить его для обеспечения безопасности (опять же через HTTPS) ». Все еще не отвечает на вопрос полностью. Означает ли это, что, пока я использую HTTPS, нормально использовать cookie? – Bartosz
Нет. Печенье можно легко украсть с помощью атаки XSS. Файлы cookie также автоматически отправляются с любым веб-запросом, чтобы они были подвержены подделке запросов на межсайтовый запрос. Ознакомьтесь с информацией (https://www.owasp.org/index.php/Cross-Site_Request_Forgery_%28CSRF%29) для получения дополнительной информации. – akirilov
Значение по умолчанию для токена-носителя в Web API 2 составляет 14 дней. Как сохранить этот токен на стороне клиента? – Bartosz