Рельсы CSRF токены - они истекают? - PullRequest
24 голосов
/ 12 октября 2011

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

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

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

Спасибо

1 Ответ

26 голосов
/ 12 октября 2011

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...