Мне нужно хранить токены доступа / обновления в браузере. Я читал, что хранить AT и RT в localStorage или sessionStorage небезопасно. Если я сохраню AT и RT в localStorage, я буду реализовывать меры безопасности для предотвращения атак XSS. Будет ли безопасно хранить его там? Спасибо
Хранение access_token - javascript
Ответы (1)
Вы можете хранить свои токены в локальном хранилище, если вы дезинфицируете данные на стороне клиента перед возвратом страницы клиенту.
Пример: клиент запрашивает страницу /user/?name=<script>[malicious script which wants to steal stored tokens]</script>
. Сервер должен экранировать символы <
и >
перед тем, как вернуть страницу клиенту (например, заменив <
на <
и >
на >
). Таким образом, скрипт не будет выполняться после того, как клиент получит страницу.
Прочтите эту статью, чтобы получить подробное объяснение: https://www.checkmarx.com/2017/10/09/3-ways-prevent-xss/
person
Michele
schedule
06.07.2019
Обратите внимание, что это очень наивный ответ как в отношении хранения токенов, так и в отношении xss. На этот вопрос уже много раз отвечали, например, здесь.
- person Gabor Lengyel; 06.07.2019