Как "разрешить" из нескольких доменов для "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