Saya hanya ingin menyertakan jawaban yang diperbarui di sini untuk siapa saja yang menemukan tautan ini ketika mencoba mencari cara untuk memungkinkan aplikasi Rails Anda disematkan dalam I-Frame dan mengalami masalah.
Saat menulis ini, 28 Mei 2020, perubahan X-Frame-Options mungkin bukan solusi terbaik Anda untuk masalah Anda. Opsi "IZINKAN DARI" sama sekali tidak diizinkan oleh semua browser utama.
Solusi modern adalah dengan mengimplementasikan Content-Security-Policy dan menyetel kebijakan 'frame_ancestors'. Kunci 'frame_ancestors' menunjukkan domain apa yang dapat menyematkan aplikasi Anda sebagai iframe. Saat ini didukung oleh browser utama dan menggantikan X-Frame-Options Anda. Ini akan memungkinkan Anda untuk mencegah Clickjacking (yang awalnya dimaksudkan untuk membantu X-Frame-Options sebelum sebagian besar menjadi usang) dan mengunci aplikasi Anda di lingkungan modern.
Anda dapat mengatur Kebijakan-Keamanan-Konten dengan Rails 5.2 di penginisialisasi (contoh di bawah), dan untuk Rails <5.2 Anda dapat menggunakan permata seperti permata Secure Headers: https://github.com/github/secure_headers
Anda juga dapat mengganti spesifikasi kebijakan berdasarkan pengontrol / tindakan jika Anda mau.
Content-Security-Policies sangat bagus untuk perlindungan keamanan tingkat lanjut. Lihat semua hal yang dapat Anda konfigurasikan di dokumen Rails: https://edgeguides.rubyonrails.org/security.html
Contoh Rails 5.2 untuk Content-Security-Policy:
Rails.application.config.content_security_policy do |policy|
policy.frame_ancestors :self, 'some_website_that_embeds_your_app.com'
end
Contoh perubahan khusus pengontrol untuk kebijakan:
class PostsController < ApplicationController
content_security_policy do |p|
p.frame_ancestors :self, 'some_other_website_that_can_embed_posts.com'
end
end