Pregunta Cómo anular X-Frame-Options para un controlador o acción en Rails 4


Rails 4 parece establecer un valor predeterminado de SAMEORIGIN Para el X-Frame-Options Encabezado de respuesta HTTP Esto es estupendo por seguridad, pero no permite que partes de su aplicación estén disponibles en una iframe en un dominio diferente.

Puede anular el valor de X-Frame-Options globalmente utilizando el config.action_dispatch.default_headers ajuste:

config.action_dispatch.default_headers['X-Frame-Options'] = "ALLOW-FROM https://apps.facebook.com"

Pero, ¿cómo lo anulas para un solo controlador o acción?


76
2017-08-26 13:50


origen


Respuestas:


Si desea eliminar el encabezado por completo, puede crear un after_action filtrar:

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

  def embed
  end

private

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

O, por supuesto, puede codificar el after_action para establecer el valor a algo diferente:

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

Tenga en cuenta que debe borrar su caché en ciertos navegadores (Chrome para mí) al depurar esto.


123
2017-08-26 13:50