Eu só queria incluir uma resposta atualizada aqui para qualquer pessoa que encontrar este link ao tentar descobrir como permitir que seu aplicativo Rails seja incorporado em um I-Frame e encontrar problemas.
No momento em que escrevi isso, 28 de maio de 2020, as alterações das Opções do X-Frame provavelmente não são sua melhor solução para o seu problema. A opção "ALLOW-FROM" foi totalmente proibida por todos os principais navegadores.
A solução moderna é implementar uma Política de Segurança de Conteúdo e definir uma política 'frame_ancestors'. A chave 'frame_ancestors' designa quais domínios podem incorporar seu aplicativo como um iframe. Atualmente é compatível com os principais navegadores e substitui as opções do X-Frame. Isso permitirá que você evite o Clickjacking (para o qual o X-Frame-Options foi originalmente criado para ajudar antes de se tornar obsoleto) e bloqueie seu aplicativo em um ambiente moderno.
Você pode configurar uma Content-Security-Policy com Rails 5.2 em um inicializador (exemplo abaixo), e para Rails <5.2 você pode usar uma gem como a gem Secure Headers: https://github.com/github/secure_headers
Você também pode substituir as especificações de política em uma base de controlador / ação, se desejar.
As políticas de segurança de conteúdo são ótimas para proteções de segurança avançadas. Verifique todas as coisas que você pode configurar nos documentos Rails: https://edgeguides.rubyonrails.org/security.html
Um exemplo do Rails 5.2 para uma política de segurança de conteúdo:
Rails.application.config.content_security_policy do |policy|
policy.frame_ancestors :self, 'some_website_that_embeds_your_app.com'
end
Um exemplo de uma mudança específica do controlador em uma política:
class PostsController < ApplicationController
content_security_policy do |p|
p.frame_ancestors :self, 'some_other_website_that_can_embed_posts.com'
end
end