[解決済み] Rails 4でコントローラやアクションのX-Frame-Optionsをオーバーライドする方法
2023-03-03 19:50:04
質問
Rails 4では、デフォルト値として
SAMEORIGIN
に対して
X-Frame-Options
HTTP レスポンスヘッダです。これは
素晴らしい
セキュリティのために最適ですが、アプリの一部を
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)でキャッシュをクリアする必要があります。
関連
-
[解決済み】修正方法:エラー:'<ファイル名>'にチェックアウトされたコミットがない fatal: コマンドプロンプトで "git add ." を入力するとファイルの追加に失敗する
-
[解決済み] pg gem をインストールしようとすると 'libpq-fe.h' ヘッダが見つからない
-
[解決済み] Ruby/Rails の「フック」とは何ですか?
-
[解決済み] erbでコメントを追加する最適な方法
-
[解決済み] railsでhidden fieldタグを使用する方法
-
[解決済み] Ruby:Rubyの配列にinclude.の反対はある?
-
[解決済み] 未初期化の定数 "コントローラ名"
-
[解決済み] Ruby on Railsのマイグレーションでデータベースのカラムの名前を変更するにはどうすればよいですか?
-
[解決済み] Rails 4で懸念事項を使用する方法
-
[解決済み] "X-Frame-Optionsで表示禁止 "を克服する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] gemのインストールができない - gemネイティブ拡張の構築に失敗 - そのようなファイルをロードできない -- mkmf (LoadError)
-
[解決済み] Rails のインストールに失敗する: activesupport には Ruby のバージョン >= 2.2.2 が必要です。
-
[解決済み] Ruby on rails "No route matches" (ルートに一致するものがない)。
-
[解決済み] PG::ConnectionBad - サーバーに接続できませんでした。接続が拒否されました。
-
[解決済み] Railsで `before_action` での `only:` はどのように機能するのですか?
-
[解決済み] RoRにおけるSpringサーバーの機能とは?
-
[解決済み] Devise Admin Roleの追加【終了しました
-
[解決済み] "render :nothing => true" は空のプレーンテキストファイルを返すのですか?
-
[解決済み] Railsコンソール:リロード!モデルファイルの変更が反映されない?考えられる理由は何でしょうか?
-
[解決済み] "X-Frame-Optionsで表示禁止 "を克服する。