Хранение access_token - javascript

Мне нужно хранить токены доступа / обновления в браузере. Я читал, что хранить AT и RT в localStorage или sessionStorage небезопасно. Если я сохраню AT и RT в localStorage, я буду реализовывать меры безопасности для предотвращения атак XSS. Будет ли безопасно хранить его там? Спасибо


person Arth    schedule 06.07.2019    source источник


Ответы (1)


Вы можете хранить свои токены в локальном хранилище, если вы дезинфицируете данные на стороне клиента перед возвратом страницы клиенту.

Пример: клиент запрашивает страницу /user/?name=<script>[malicious script which wants to steal stored tokens]</script>. Сервер должен экранировать символы < и > перед тем, как вернуть страницу клиенту (например, заменив < на &lt и > на &gt). Таким образом, скрипт не будет выполняться после того, как клиент получит страницу.

Прочтите эту статью, чтобы получить подробное объяснение: https://www.checkmarx.com/2017/10/09/3-ways-prevent-xss/

person Michele    schedule 06.07.2019
comment
Обратите внимание, что это очень наивный ответ как в отношении хранения токенов, так и в отношении xss. На этот вопрос уже много раз отвечали, например, здесь. - person Gabor Lengyel; 06.07.2019