Обработка ошибок CSRF в Rails

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

Rails protect_from_forgery нарушает форму входа в систему, если она простаивает

Один комментарий к вопросу, который я связал с вышеупомянутыми проблемами безопасности, связанными с продлением срока действия файлов cookie Rails. Так ли это на самом деле? Должен ли я вместо этого обновлять страницу при появлении этой ошибки? Я не хочу отключать защиту CSRF. Как лучше всего справиться с этой ошибкой и сохранить удобство использования? Я также использую Devise в своем приложении.

Can't verify CSRF token authenticity.
Completed 422 Unprocessable Entity in 4ms (ActiveRecord: 0.0ms)

ActionController::InvalidAuthenticityToken (ActionController::InvalidAuthenticityToken):

Похоже, что вопрос, который вы задаете, является точной копией вопроса, на который вы ссылаетесь, и ваши вопросы уже обсуждаются и там даны ответы. Можете ли вы объяснить, почему вы задали еще один вопрос, и почему существующие ответы на повторяющийся вопрос не работают для вас?

meager 02.05.2018 16:03
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
1
315
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ответ, который вы связали, уже дает некоторое представление о том, что вы можете сделать на стороне сервера.

Однако вы можете предотвратить отправку устаревших форм на стороне клиента. Некоторые настройки javascript / пользовательского интерфейса могут вам помочь.

Вот несколько идей: - Отображение обратного отсчета - Через 15 минут появляется всплывающее окно с сообщением о необходимости обновления. и т.п.

Кто-то всегда может открыть код и отправить, но тогда вас не волнует эта ошибка 422 в глазах людей, пытающихся взломать.

Другие вопросы по теме