Компонент нашего webapp - это (более-менее) SPA. то есть он работает с использованием javascript и не генерирует никаких просмотров страниц или обновлений. Это может привести к тому, что токены CSRF будут устаревать. Особенно для пользователей мобильных телефонов, которые могут отключить браузер и открыть его через несколько дней/недель. Этот SPA иногда нуждается в обновлениях POST для сервера.Безопасно ли обходить защиту CSRF для XHR? (Rails)
Мы видим несколько запросов POST для javascript, которые генерируют ошибку 422 с предупреждением о защите CSRF. Я почти уверен, что токен CSRF присутствует, но устарел. Я пытаюсь найти лучший способ обойти его.
Если я правильно понимаю вещи и согласно OWASP CSRF Cheat Sheet, запросы XHR должны быть безопасными, если CORS не открыт на той же конечной точке. То есть, вредоносный сайт не может обработать запрос с заголовком XHR без javascript. И с javascript запрос должен быть заблокирован, так как он является перекрестным.
Единственный ресурс I found имел довольно смутно написанный пример, где защита CSRF отключена для json. Я не мог понять, рекомендует ли он делать это, или избегать этого.
Действительно ли безопасно или небезопасно отключать защиту CSRF для запросов XHR/json на рельсах, где CORS не включен?
Я создал PR для обновления документации Rails. См. Https://github.com/rails/rails/pull/31640 – gingerlime