developer tip

Rails 4에서 컨트롤러 또는 액션에 대한 X-Frame-Options를 재정의하는 방법

optionbox 2020. 9. 22. 08:04
반응형

Rails 4에서 컨트롤러 또는 액션에 대한 X-Frame-Options를 재정의하는 방법


Rails 4 SAMEORIGINX-Frame-OptionsHTTP 응답 헤더 의 기본값을 설정하는 것으로 보입니다 . 이다 중대한 보안을 위해, 그러나 그것은에서 사용할 수 있도록 응용 프로그램의 일부를 허용하지 않는 iframe다른 도메인에.

X-Frame-Options다음 config.action_dispatch.default_headers설정을 사용하여 전역 적으로 값을 재정의 할 수 있습니다 .

config.action_dispatch.default_headers['X-Frame-Options'] = "ALLOW-FROM https://apps.facebook.com"

그러나 단일 컨트롤러 또는 작업에 대해 어떻게 재정의합니까?


헤더를 완전히 제거하려면 after_action필터를 만들 수 있습니다 .

class FilesController < ApplicationController
  after_action :allow_iframe, only: :embed

  def embed
  end

private

  def allow_iframe
    response.headers.except! 'X-Frame-Options'
  end
end

또는 물론을 코딩 after_action하여 값을 다른 값으로 설정할 수 있습니다 .

class FacebookController < ApplicationController
  after_action :allow_facebook_iframe

private

  def allow_facebook_iframe
    response.headers['X-Frame-Options'] = 'ALLOW-FROM https://apps.facebook.com'
  end
end

이것을 디버깅하는 동안 특정 브라우저 (Chrome for me)에서 캐시를 지워야합니다.

참고 URL : https://stackoverflow.com/questions/18445782/how-to-override-x-frame-options-for-a-controller-or-action-in-rails-4

반응형