93 votes

Comment remplacer les X-Frame-Options pour un contrôleur ou une action dans Rails 4

Rails 4 apparaît pour définir une valeur par défaut de pour la en-tête de réponse HTTP. C’est grand pour la sécurité, mais il ne permet pas pour les parties de votre application doit être disponible dans un `` sur un domaine différent.

Vous pouvez substituer la valeur de dans le monde en utilisant le paramètre :

Mais comment vous l’ignorer pour seulement un seul contrôleur ou action ?

147voto

Chris Peters Points 6429

Si vous souhaitez supprimer complètement l'en-tête, vous pouvez créer un filtre after_action :

 class FilesController < ApplicationController
  after_action :allow_iframe, only: :embed

  def embed
  end

private

  def allow_iframe
    response.headers.except! 'X-Frame-Options'
  end
end
 

Ou bien sûr, vous pouvez coder les after_action pour définir une valeur différente:

 class FacebookController < ApplicationController
  after_action :allow_facebook_iframe

private

  def allow_facebook_iframe
    response.headers['X-Frame-Options'] = 'ALLOW-FROM https://apps.facebook.com'
  end
end
 

Notez que vous devez vider votre cache dans certains navigateurs (Chrome for me) lors du débogage.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X