Je voulais juste inclure une réponse mise à jour ici pour quiconque trouve ce lien en essayant de comprendre comment autoriser votre application Rails à être intégrée dans un I-Frame et à rencontrer des problèmes.
Au moment d'écrire ces lignes, le 28 mai 2020, les modifications des options X-Frame ne sont probablement pas votre meilleure solution à votre problème. L'option "ALLOW-FROM" a été totalement interdite par tous les principaux navigateurs.
La solution moderne consiste à mettre en œuvre une politique de sécurité du contenu et à définir une politique «frame_ancestors». La clé 'frame_ancestors' désigne les domaines qui peuvent intégrer votre application en tant qu'iframe. Il est actuellement pris en charge par les principaux navigateurs et remplace vos options X-Frame. Cela vous permettra d'empêcher le détournement de clic (que les options X-Frame étaient initialement destinées à aider avant qu'il ne devienne largement obsolète) et de verrouiller votre application dans un environnement moderne.
Vous pouvez configurer une politique de sécurité du contenu avec Rails 5.2 dans un initialiseur (exemple ci-dessous), et pour Rails <5.2, vous pouvez utiliser une gemme comme la gemme Secure Headers: https://github.com/github/secure_headers
Vous pouvez également remplacer les spécifications de politique sur une base contrôleur / action si vous le souhaitez.
Les politiques de sécurité du contenu sont parfaites pour les protections de sécurité avancées. Découvrez tout ce que vous pouvez configurer dans la documentation Rails: https://edgeguides.rubyonrails.org/security.html
Un exemple de Rails 5.2 pour une politique de sécurité de contenu:
Rails.application.config.content_security_policy do |policy|
policy.frame_ancestors :self, 'some_website_that_embeds_your_app.com'
end
Un exemple de modification spécifique d'un contrôleur dans une stratégie:
class PostsController < ApplicationController
content_security_policy do |p|
p.frame_ancestors :self, 'some_other_website_that_can_embed_posts.com'
end
end