Приложение Rails возвращает 422 ответа (не может проверить подлинность токена CSRF) при подаче в iframe

#ruby-on-rails #iframe #csrf

#ruby-on-rails #iframe #csrf

Вопрос:

Я обслуживаю конкретное приложение rails в iFrame на определенной платформе (для встраивания веб-игры). В некоторых случаях / браузерах, но не во всех, отправка формы невозможна из-за того, что что-то не так с CSRF.

Я обнаружил, что это может быть исправлено путем установки заголовка p3p, поэтому я сделал следующее в application_controller.rb без результата:

 before_action :set_p3p

private 
  
def set_p3p
  headers['P3P'] = 'CP="ALL DSP COR CURa ADMa DEVa OUR IND COM NAV"'
end
  

Ошибка, которая отображается в журналах:

 W, [2020-09-02T10:28:03.574095 #21884]  WARN -- : [a12fc8c6-8d21-450e-9555-4673e8317662] Can't verify CSRF token authenticity.
I, [2020-09-02T10:28:03.575387 #21884]  INFO -- : [a12fc8c6-8d21-450e-9555-4673e8317662] Completed 422 Unprocessable Entity in 2ms (ActiveRecord: 0.0ms | Allocations: 888)
F, [2020-09-02T10:28:03.576961 #21884] FATAL -- : [a12fc8c6-8d21-450e-9555-4673e8317662]   
[a12fc8c6-8d21-450e-9555-4673e8317662] ActionController::InvalidAuthenticityToken (ActionController::InvalidAuthenticityToken):

  

Комментарии:

1. Вы нашли решение?