web-dev-qa-db-fra.com

Comment "autoriser à partir de" plus d'un domaine pour "X-Frame-Options" dans le contrôleur Rails 4?

Dans une Ruby on Rails 4 application sur laquelle je travaille, je dois créer une page qui sera tirée dans une iframe hébergée sur le foo.bar.com serveur, j'ai donc cette méthode de contrôleur:

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

..et maintenant il s'avère que le client veut que je mette également sur liste blanche http://foo.dev.bar.com ainsi que.

Je sais que pour définir X-FRAME-OPTIONS, l'option "ALLOW-FROM" ne permet pas de créer plusieurs sous-domaines. Mais comme il s'agit du même domaine racine avec différents sous-domaines, serait-il un peu plus flexible? Par exemple, pourrais-je faire quelque chose comme

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

ainsi que?

11
drumwolf

Vous pouvez utiliser le Content-Security-Policy en-tête à la place, mais il ne fonctionne pas sur tout .

response.headers["X-Content-Security-Policy"] = "frame-ancestors http://*.bar.com";
response.headers["Content-Security-Policy"] = "frame-ancestors http://*.bar.com";
  • Content-Security-Policy remplacera X-Frame-Options sur les navigateurs modernes
  • X-Content-Security-Policy remplacera X-Frame-Options sur IE11
15
Andrew Carreiro