Как "разрешить" из нескольких доменов для "X-Frame-Options" в контроллере Rails 4?

В приложении Ruby on Rails 4, над которым я работаю, мне нужно сделать страницу, которая будет foo.bar.com в iframe, размещенную на сервере foo.bar.com, поэтому у меня есть этот метод контроллера:

def iframed_page
  response.headers["X-FRAME-OPTIONS"] = "ALLOW-FROM http://foo.bar.com"
end

.. и теперь выясняется, что клиент хочет, чтобы я также добавил белый список http://foo.dev.bar.com.

Я знаю, что для установки X-FRAME-OPTIONS опция "ALLOW-FROM" не позволяет использовать несколько поддоменов. Но поскольку это тот же корневой домен с разными подобластями, было бы он немного более гибким? Например, могу ли я сделать что-то вроде

response.headers["X-FRAME-OPTIONS"] = "ALLOW-FROM http://*.bar.com"

также?

Ответы

Ответ 1

Вместо этого вы можете использовать заголовок Content-Security-Policy, но он не работает на все.

response.headers["X-Content-Security-Policy"] = "frame-ancestors http://*.bar.com";
response.headers["Content-Security-Policy"] = "frame-ancestors http://*.bar.com";
  • Content-Security-Policy переопределит X-Frame-Options в современных браузерах
  • X-Content-Security-Policy переопределит X-Frame-Options в IE11