Rails 4 scheint einen Standardwert von SAMEORIGIN
für den HTTP-Antwortheaderfestzulegen. Dies ist groß für Sicherheit, aber es nicht für Teile Ihrer App in einer iframe
auf einer anderen Domäne verfügbar sein.So überschreiben Sie X-Frame-Optionen für einen Controller oder eine Aktion in Rails 4
Sie können den Wert von X-Frame-Options
global überschreiben die config.action_dispatch.default_headers
Einstellung mit:
config.action_dispatch.default_headers['X-Frame-Options'] = "ALLOW-FROM https://apps.facebook.com"
Aber, wie Sie es für nur einen einzigen Controller oder Aktion kann außer Kraft setzen?
class FilesController < ApplicationController
after_action :allow_iframe, only: :embed
def embed
end
private
def allow_iframe
response.headers.except! 'X-Frame-Options'
end
end
Oder natürlich, können Sie die after_action
unterschiedliche den Wert auf etwas einstellen kann Code:
Wie würden Sie dies auf einer redirect_to arbeiten? (Ich versuche gerade mit meiner Angular-App, und es funktioniert nicht) – kittyminky
Ich würde annehmen, dass sowohl die Aktion, die das 'redirect_to' enthält, als auch die Aktion, zu der es weitergeleitet wird, dies anwenden muss. Erhalten Sie einen bestimmten Fehler? Klingt wie eine gute neue Frage auf Stack Overflow! –
Mir wurde klar, dass ich die 'after_action' * hatte, bevor * sie auf die finale Controller-Aktion umgeleitet wurde, die auf die 'Angular'-Routen umleitet. Vielen Dank! – kittyminky