11

In un Ruby on Rails 4 applicazione su cui sto lavorando, ho bisogno di fare una pagina che verrà tirato in un iframe ospitato sul server foo.bar.com, quindi non ho questo metodo di controllo:Come "consentire-da" più di un dominio per "X-Frame-Options" nel controller Rails 4?

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

.. e ora risulta che il cliente vuole che anche io autorizzi la whitelist http://foo.dev.bar.com.

So che per l'impostazione di X-FRAME-OPTIONS, l'opzione "ALLOW-FROM" non consente più sottodomini. Ma poiché questo è lo stesso dominio radice con sottodomini diversi, sarebbe un po 'più flessibile? Per esempio, potrei fare qualcosa come

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

?

+1

possibile duplicato del [X-Frame-Options Consenti-Da più domini] (http: // stackoverflow.com/questions/10205192/x-frame-options-allow-from-multiple-domains) – deefour

+1

Ho letto quella domanda, grazie mille. Non spiega nulla su Ruby on Rails, o cosa fare se si hanno due sottodomini diversi dello stesso dominio radice. – drumwolf

+1

Non sto cercando di essere polemico quando dico: la tua domanda non è propriamente specifica di Rails, e la domanda/risposta collegata sopra fornisce informazioni su un prefisso con caratteri jolly usando 'Content-Security-Policy'. Indipendentemente da ciò, sembra che "X-FRAME-OPTIONS" non sia la scelta più lungimirante. – deefour

risposta

11

È possibile utilizzare invece l'intestazione Content-Security-Policy, ma è 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 sovrascriverà X-Frame-Options sul browser moderni
  • X-Content-Security-Policy annulleranno X-Frame-Options su IE11
+4

'frame-ancestors' fa parte di CSP versione 2, che è [attualmente non supportato] (http://caniuse.com/#feat=contentsecuritypolicy2) in Internet Explorer o Edge. – Sjoerd

+1

Nota che i frame-antenati non avranno la priorità in firefox, vedi questo bug https://bugzilla.mozilla.org/show_bug.cgi?id=1024557 e vai su di esso per provare a risolverlo. – MicWit

+1

Per https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP: _ "a volte si vedranno le menzioni dell'intestazione X-Content-Security-Policy, ma questa è una versione precedente e non si Non è necessario specificarlo più "_ – Madbreaks