devellopah
@devellopah

Насколько легко(или сложно) будет злоумышленнику похитить access_token из local storage?

C token-based authentication интересная история. Дело в том, что для сервера в этой ситуации, неважно кто пытается получить доступ к защищённым данным, но, если вы отправили токен, значит вы имеете право на получение этих данных.

Достаточно злоумышленнику похитить ваш токен - ваш аккаунт скомпрометирован.

Выбор для хранения токена на клиенте лежит между local storage(session storage) и cookie.
Больше, насколько мне известно, вариантов нет.
И оба эти способа - геморройные(не имеют никакой защиты по дефолту от тех или иных видов атак)

Предположим я залогинился в ваше приложение и получил токент от сервиса авторизации.

Дальше я вижу два варианта:

1) дизайн приложения таков, что вы помещаете токен в local storage(session storage)
2) дизайн приложения таков, что вы помещаете токен в cookie(это не противоречит концепции REST, поскольку cookie - storage mechanism и нет ничего противоречивого в том, чтобы хранить токен в куках)

Осюда два вопроса:
1) как я будучи злоумышленником могу получить доступ к вашему local storage?
2) как я будучи злоумышленником могу получить доступ к вашим cookie?

Просто мне кажется, чтобы понять какие предпринять меры для защиты от всякого рода атак, неплохо было бы понять как их обычно делают и насколько это легко или сложно.
  • Вопрос задан
  • 398 просмотров
Решения вопроса 1
petermzg
@petermzg
Самый лучший программист
Для cookies можно на сервере задать следующие флаги

Secure - The Cookie will be sent in secure channel--HTTPS
HttpOnly- Don't allow local scripts read cookies.

Из javascript уже не достать будет.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
Подробный разбор этого вопроса на английском языке. Вкратце – советуют использовать Cookies.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
23 нояб. 2024, в 01:31
1000 руб./за проект
23 нояб. 2024, в 00:16
2000 руб./за проект