Подтвердить что ты не робот

Rails CSRF Token - истекают ли они?

Я заметил, что если вы публикуете недействительный токен CSRF, rails/devise автоматически выведет вас.

У меня есть приложение, которое не обновляет страницу, и пользователи долгое время сидят на странице в режиме реального времени. Время от времени пользователь выбивается. Мне интересно, истекает ли токен CSRF, делая его недействительным.

Вот почему я пытаюсь учиться, заканчиваются ли токены Rails CSRF? Есть где-то время?

Спасибо

4b9b3361

Ответ 1

Защита CSRF в Rails работает путем хранения случайного значения в качестве поля в отправляемой форме, а также в сеансе пользователя. Если значения не совпадают при отправке формы, Rails отклоняет запрос на отправку формы.

Если вы используете хранилище сеансов cookie по умолчанию в Rails, сеансы не истекают (пока cookie не сделает). Если вы используете что-то еще (сеансы с поддержкой файлов или баз данных), то да, если эти сеансы истекают, представление формы завершится с ошибкой CSRF.

Итак, если вы используете сеансы на основе файлов cookie (по умолчанию), проверьте срок действия файла cookie. Если это выглядит нормально, возможно, это еще одна проблема.