Неверный запрос кросс-происхождения после обновления до Rails 4.1

В какой-то момент после того, как я обновился с Rails 3.2 до Rails 4.1, я начал получать следующие ошибки:

ActionController::InvalidCrossOriginRequest: Предупреждение безопасности: встроенный тег на другом сайте запросил защищенный JavaScript. Если вы знаете, что делаете, отключите защиту от подделки для этого действия, чтобы разрешить использование JavaScript из разных источников.

В основном они поступают из браузеров Internet Explorer 6 или 8 в Windows XP и никогда не имеют сопроводительной информации о пользователе, даже если они обращаются к действию контроллера, которое отображается только для вошедших в систему пользователей.

Как исправить эту проблему или решить ее?

(См. также связанную проблему перед обновлением: Почему Rails не удается получить доступ к сеансу в Ajax-запросе из Internet Explorer? )


person am-rails    schedule 28.05.2014    source источник
comment
Проверьте наличие ошибок javascript в консоли javascript для IE (нажмите F12 и найдите вкладку консоли). Бьюсь об заклад, есть некоторые ошибки, которые мешают нормальной работе JS в IE.   -  person pdobb    schedule 28.05.2014
comment
Вы заходите на свой сервер или на другой?   -  person Richard Peck    schedule 28.05.2014
comment
@RichPeck, файл javascript вызывает мой собственный сервер.   -  person am-rails    schedule 28.05.2014
comment
Я просматривал связанный источник проблем COR и задал вопросы и ответы здесь... stackoverflow.com/questions/24707336/   -  person Zachary Moshansky    schedule 14.07.2014


Ответы (1)


Согласно «Защите CSRF от удаленных тегов» из руководства по рельсам:

В случае тестов, когда вы также выполняете клиент, измените:

получить: индекс, формат:: js

To:

xhr :get, :index, формат: :js

http://edgeguides.rubyonrails.org/upgrading_ruby_on_rails.html#csrf-protection-from-remote-script-tags

Если вы хотите, чтобы этот маршрут пропустил проверку csrf, добавьте маршрут в белый список, используя что-то вроде:

protect_from_forgery :except => :create
person JAR.JAR.beans    schedule 06.10.2014
comment
JAR.JAR.beans, какова потенциальная угроза безопасности, если поставить это :except =› :create? - person user938363; 22.02.2015
comment
Ошибка исчезает после добавления в :except =› :new. Мы пытаемся выяснить, какие потенциальные риски, связанные с этим, за исключением. У кого-то есть идеи? - person user938363; 22.02.2015
comment
Кстати, ошибка в нашем приложении вызвана вызовом ajax для создания нового журнала. Весь код js находится в одном приложении, и, насколько я понимаю, перекрестных ссылок нет. - person user938363; 22.02.2015