[RUBY-ON-RAILS] 루비 레일에 4 응용 프로그램이있는 iframe하지 작업을 수행
RUBY-ON-RAILS루비 레일에 4 응용 프로그램이있는 iframe하지 작업을 수행
어떻게 iframe을 통해 다른 웹 사이트에 내 레일 응용 프로그램을 포함 할 수 있습니다?
그것은하지만 RoR에 4, RoR에 3 잘 작동 :
<iframe src="http://myrailsapp.com/" width="100%" height="50" id="rails_iframe">error!</iframe>
나는 ... 내 컨트롤러에 verify_authenticity_token 및 protect_from_forgery 옵션을 사용하려고 다른 그것의 무언가를 보인다 (그러나 나는 확실하지 않다).
UPD. 예: http://jsfiddle.net/zP329/
해결법
-
==============================
1.이것은 기본적으로 추가 보안 프로토콜을 활성화 레일 4과 관련이있다 : http://weblog.rubyonrails.org/2013/2/25/Rails-4-0-beta1/
이것은 기본적으로 추가 보안 프로토콜을 활성화 레일 4과 관련이있다 : http://weblog.rubyonrails.org/2013/2/25/Rails-4-0-beta1/
설정 원격 사이트에 휴식의 iFrame을은 X-프레임 - 옵션입니다. 기본적으로이되는로드 크로스 도메인에서 콘텐츠를 방지 SAMEORIGIN로 설정 :
config.action_dispatch.default_headers = { 'X-Frame-Options' => 'SAMEORIGIN' }
현재 새 기본 헤더에 대해 읽을 수 있습니다 : http://edgeguides.rubyonrails.org/security.html#default-headers
iframe이 크로스 도메인을 작업 할 수 있도록하기 위해, 당신은 도메인에서 X-프레임을 허용하도록 기본 헤더를 변경할 수 있습니다.
config.action_dispatch.default_headers = { 'X-Frame-Options' => 'ALLOWALL' }
-
==============================
2.4 SAMEORIGIN의 기본 X-프레임 - 옵션 HTTP 헤더 값을 추가 레일. 이 보안을 위해 좋다, 그러나 당신이 당신의 작업은 iframe에 호출하고자 할 때, 당신은이 작업을 수행 할 수 있습니다 :
4 SAMEORIGIN의 기본 X-프레임 - 옵션 HTTP 헤더 값을 추가 레일. 이 보안을 위해 좋다, 그러나 당신이 당신의 작업은 iframe에 호출하고자 할 때, 당신은이 작업을 수행 할 수 있습니다 :
class MyController < ApplicationController def iframe_action response.headers.delete "X-Frame-Options" render_something end end
class MyController < ApplicationController def iframe_action response.headers["X-FRAME-OPTIONS"] = "ALLOW-FROM http://some-origin.com" render_something end end
after_filter : 당신은 iframe에 액션 중 하나 이상 사용해야 할 때, 방법을 확인하고 그것을 호출하는 좋은 아이디어이다 :
class ApplicationController < ActionController::Base private def allow_iframe response.headers.delete "X-Frame-Options" end end
이처럼 컨트롤러에 사용 :
class MyController < ApplicationController after_filter :allow_iframe, only: [:basic_embed, :awesome_embed] def basic_embed render_something end def awesome_embed render_something end # Other Actions... end
비아 : 4 레일 : 특정 조치가 iframe으로 삽입 될 수 있도록
-
==============================
3.나는 작동하지 않는 X-프레임-옵션과 레일 (6)과 크롬 (76) 이전 솔루션과 함께 일하고 있어요. 그러나 나는 우리가 JS 온라인은 iframe을 첨부 할 때 아주 잘 작동 것으로 나타났습니다. 그래서, 난 그냥 내보기에이 간단한 솔루션을 만든 :
나는 작동하지 않는 X-프레임-옵션과 레일 (6)과 크롬 (76) 이전 솔루션과 함께 일하고 있어요. 그러나 나는 우리가 JS 온라인은 iframe을 첨부 할 때 아주 잘 작동 것으로 나타났습니다. 그래서, 난 그냥 내보기에이 간단한 솔루션을 만든 :
<div id='iframe_wrapper' 'data-iframe-content'='<iframe src="https://host.com/"></iframe>'> </div>
...이 같은 JS 코드를 추가 :
$(document).ready(function() { var wrapper = $('#iframe_wrapper')[0] wrapper.innerHTML = wrapper.attributes['data-iframe-content'].value })
from https://stackoverflow.com/questions/16561066/ruby-on-rails-4-app-does-not-work-in-iframe by cc-by-sa and MIT license
'RUBY-ON-RAILS' 카테고리의 다른 글
[RUBY-ON-RAILS] 레일의 동적 오류 페이지 3 (0) | 2020.02.29 |
---|---|
[RUBY-ON-RAILS] 레일 4.0에서 고안에 새로운 필드를 추가 허가되지 않은 매개 변수 (0) | 2020.02.29 |
[RUBY-ON-RAILS] 문자열이 유효한 날짜인지 확인하는 방법 (0) | 2020.02.28 |
[RUBY-ON-RAILS] 레일 콘솔에 루비로드 할 때 걸려 (0) | 2020.02.28 |
[RUBY-ON-RAILS] 레일 3 - 속도 콘솔로드 시간까지 (0) | 2020.02.28 |