Rails 앱이 I-Frame에 포함되어 문제가 발생하도록 허용하는 방법을 알아 내려고 할 때이 링크를 찾은 모든 사람을 위해 여기에 업데이트 된 답변을 포함하고 싶었습니다.
이 글을 쓰는 현재, 2020 년 5 월 28 일, X-Frame-Options 변경은 아마도 귀하의 문제에 대한 최선의 해결책이 아닐 것입니다. "ALLOW-FROM"옵션은 모든 주요 브라우저에서 완전히 허용되지 않았습니다.
현대적인 솔루션은 Content-Security-Policy를 구현하고 'frame_ancestors'정책을 설정하는 것입니다. 'frame_ancestors'키는 앱을 iframe으로 포함 할 수있는 도메인을 지정합니다. 현재 주요 브라우저에서 지원되며 X-Frame-Options를 재정의합니다. 이렇게하면 클릭 재킹 (X-Frame-Options가 원래 지원이 거의 중단되기 전에 도움을주기위한 목적 임)을 방지하고 최신 환경에서 앱을 잠글 수 있습니다.
이니셜 라이저 (아래 예제)에서 Rails 5.2로 Content-Security-Policy를 설정할 수 있으며, Rails <5.2의 경우 Secure Headers gem과 같은 gem을 사용할 수 있습니다 : https://github.com/github/secure_headers
원하는 경우 컨트롤러 / 작업 기준으로 정책 사양을 재정의 할 수도 있습니다.
Content-Security-Policies는 고급 보안 보호에 적합합니다. Rails 문서에서 구성 할 수있는 모든 것을 확인하세요 : https://edgeguides.rubyonrails.org/security.html
콘텐츠 보안 정책을위한 Rails 5.2 예제 :
Rails.application.config.content_security_policy do |policy|
policy.frame_ancestors :self, 'some_website_that_embeds_your_app.com'
end
정책에 대한 컨트롤러 특정 변경의 예 :
class PostsController < ApplicationController
content_security_policy do |p|
p.frame_ancestors :self, 'some_other_website_that_can_embed_posts.com'
end
end