Что-то не вполне понимаю CSRF защиту. То есть суть защиты в том, что у нас есть дополнительный токен, который мы отправляем на сервер при каждом запросе. Вот у меня два вопроса:
1. Для отправки запросов на сервер мы встраиваем в форму CSRF-токен. Что мешает злоумышленнику сделать точно такую же форму, в которую точно так же будет подставляться CSRF-токен из наших кук?
2. Как мы делаем самый первый запрос к серверу (аутентификация), если CSRF-токена у нас ещё нет? Или аутентификацию разрешается без этого токена делать?
CSRF токен каждый раз разный. Сайт загрузился, в форму подставился свеженький. Но если вы его скопируете и попробуете использовать из другого места - то он тут же протухнет.
Не протухнет, у него нет срока годности, ну точнее пока сессия существует он будет жить, или даже пока будут создаваться сессии с ключем с которым он генерился. Другое что когда вы делаете запрос из другого места то создается другая сессия с другим ключом и ваш запрос будет отвергнут.
Если сайт определит что это та же сессия в которой он генерил ключ то всё примет.
Так, ну про обновление токена понял... Да, действительно обновляется... Ну вот всё-таки не пойму. Смотрите, я использую React и axios и вот у меня вытаскивается токен (я токен через хедеры передаю):