Lite_stream
@Lite_stream

Как реализовать Double Submit Cookie?

Добрый день.
Прочитав несколько статей про DSC, появились следующие вопросы:

1.Имеет ли смысл генерить csrf токен на каждый запрос от клиента или всё же ограничиться временем жизни куки аутентификации для csrf токена, то есть при логине пользователя устанавливать ему токен, а не при каждом запросе?

2.Не совсем понимаю зачем нужно отправлять токен и в куке и в ответе, ведь если на сайте присутствует XSS, то злоумышленник может прочитать токен прямо из html и флаг httponly тут не спасёт?

3.Если токен обновлять при каждом запросе, и хранить его в html(как скрытое поле формы или в теге meta), то возникают проблемы с multi-tab, так как при открытых двух и более вкладках запросы на 2-й обновляют куку в 1-й, но не обновляют сопряжённый токен в html 1-й вкладки, поэтому при попытке что-то отправить из 1-й вкладки запрос будет не легитимный для сервера. Назревает вопрос, является ли допустимой практикой использовать связку для токена cookie + localStorage для синхронизации вкладок, а не cookie + html, ведь согласно Same Origin Policy злоумышленник не имеет доступа к localStorage?

4.Если токен обновлять при каждом запросе, то какое время жизни для него будет предпочтительно?
  • Вопрос задан
  • 612 просмотров
Пригласить эксперта
Ответы на вопрос 1
inoise
@inoise
Solution Architect, AWS Certified, Serverless
Сross Site Request Forgery - да вот зачем. В идеале этот токен генерируется каждый раз для отдельной формы. Он нужен для проверки не бот ли приехал, а если и бот то заходил ли на страницу. В общем, несколько сомнительная версия CORS, но от любознательных новичков спасает
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Искра Екатеринбург
от 80 000 до 100 000 ₽
Art gorka Санкт-Петербург
от 60 000 ₽
от 40 000 до 60 000 ₽