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

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

Похожие вопросы