11

, ben foo.bar.com sunucusunda barındırılan bir iframe içine çekilecektir bir sayfa yapmak gerekir, bu yüzden bu kontrolör yöntemi vardır:Rails 4 denetleyicisinde "X-Frame-Options" için birden fazla etki alanına "izin vermek" nasıl yapılır? Üzerinde çalıştığım bir Ruby on Rails 4 uygulamasında

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

.. ve şimdi müşterinin de http://foo.dev.bar.com da beyaz listeye almamı istediği anlaşılıyor.

X-FRAME-OPTIONS ayarını yapmak için "İZİN VERMEDEN" seçeneği, birden çok alt etki alanına izin vermeyeceğini biliyorum. Ancak bu, farklı alt alan adlarıyla aynı kök etki alanı olduğundan, biraz daha esnek olabilir mi? Örneğin,

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

gibi bir şey yapabilir miyim?

+1

olası yinelenen: // stackoverflow.com/questions/10205192/x-frame-options-allow-from-multiple-domains) – deefour

+1

Bu soruyu okudum, çok teşekkür ederim. Ruby on Rails hakkında bir şey açıklamıyor ya da aynı kök alan adında iki farklı alt etki alanınız varsa ne yapmalısınız. – drumwolf

+1

Söylediğimde tartışmacı olmaya çalışmıyorum: Sorunuz gerçekten Raylara özgü değil ve yukarıdaki bağlantılı soru/cevap, 'İçerik-Güvenlik Politikası'nı kullanarak bir joker karakter ön eki hakkında bilgi sağlıyor. Ne olursa olsun, 'X-FRAME-OPTIONS' en ileriye dönük seçim olmayabilir. – deefour

cevap

11

Content-Security-Policy üstbilgisini kullanabilirsiniz, ancak doesn't work on everything.

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-Content-Security-Policy IE11 üzerinde X-Frame-Options geçersiz kılar modern tarayıcılarda X-Frame-Options geçersiz kılar
[X-Frame-Options Allow-Dan birden çok etki] (http
+4

'frame-ancestors', Internet Explorer veya Edge'de [şu anda desteklenmeyen] (http://caniuse.com/#feat=contentsecuritypolicy2) olan CSP sürüm 2'nin bir parçasıdır. – Sjoerd

+1

Çerçeve atalarının firefox'ta öncelik almayacağını unutmayın, bu hataya bakın https://bugzilla.mozilla.org/show_bug.cgi?id=1024557 ve bunu düzeltmeyi denemek için bunu tekrar deneyin. – MicWit

+1

https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP başına: _ "bazen X-Content-Security-Policy üstbilgisinin sözlerini göreceksiniz, ancak bu eski bir sürüm ve siz Artık belirtmeniz gerekmiyor "_ – Madbreaks