web-dev-qa-db-ja.com

Rails 4コントローラーで「X-Frame-Options」の複数のドメインを「許可」する方法は?

Ruby on Rails 4アプリケーションで作業している場合、foo.bar.comサーバーでホストされているiframeにプルされるページを作成する必要があります。だから私はこのコントローラーメソッドを持っています:

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"

同じように?

11
drumwolf

代わりに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はIE11のX-Frame-Optionsをオーバーライドします
15
Andrew Carreiro