困っていること
Youtubeのように、他のサイトにiframeで埋め込まれることを
前提としたサイト(= http://hoge.com )を作っています。
これを別ドメインから以下のように読み込もうとすると、
読み込みエラーとなってしまいます。
// 別ドメインの http://foo.com/ にiframeで埋め込みたい <iframe src="http://hoge.com">
質問したいこと
X-Frame-OptionsのALLOW-FROMを以下のように設定したところ、
http://foo.comではiframe表示ができました。
add_header X-Frame-Options "ALLOW-FROM http://foo.com/";
しかし実現したいのはドメイン毎の設定を入れる必要なく、
Youtubeのようにどんなサイトにも埋め込めるようにしたいです。
どのような設定を入れれば良いでしょうか?
補足
ALLOW-FROMを空で設定した場合、
Chromeでは全ドメイン許可の挙動となるようですが、
Firefoxにおいても全ドメイン許可する方法を探しております。
add_header X-Frame-Options "ALLOW-FROM";
どなたかご有識の方いらっしゃいましたら、どうぞ宜しくお願いいたします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/01/30 14:24 編集
回答2件
0
自己解決
Access-Control-Allow-Headers: Origin, Authorization, Accept
をコメントアウトしたうえで、
add_header X-Frame-Options "ALLOW";
を付け足す、が正解でした。
正解レスポンスヘッダ
< Access-Control-Allow-Origin: *
< Access-Control-Allow-Methods: POST, GET, OPTIONS
< Access-Control-Allow-Credentials: true
< X-Frame-Options: ALLOW
nginx.conf
location / { add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Methods "POST, GET, OPTIONS"; # add_header Access-Control-Allow-Headers "Origin, Authorization, Accept"; add_header Access-Control-Allow-Credentials true; add_header X-Frame-Options "ALLOW";
アプリケーションとのコンフリクトに注意
アプリケーション側でX-Frame-Optionsを付け足す設定になっている場合があり、
自分の場合はRuby on RailsがデフォルトでSAMEORIGINを返すようになっていたため、
Chromeではコンフリクトエラーが発生。
エラー
Refused to display 'https://hoge.com' in a frame because it set multiple 'X-Frame-Options' headers with conflicting values ('SAMEORIGIN, ALLOW'). Falling back to 'deny'
ヘッダ
* Server nginx/1.10.1 is not blacklisted < Server: nginx/1.10.1 < Date: Thu, 01 Feb 2018 23:59:11 GMT < Content-Type: text/html; charset=utf-8 < Transfer-Encoding: chunked < Connection: keep-alive < X-Frame-Options: SAMEORIGIN < X-XSS-Protection: 1; mode=block < X-Content-Type-Options: nosniff < ETag: W/"460d2cbdc5ecf1d7417e99fc879fd127" < Cache-Control: max-age=0, private, must-revalidate < X-Request-Id: 5c24d399-9c62-4ffe-b4fa-47caed6409e9 < X-Runtime: 0.013970 < Access-Control-Allow-Origin: * < Access-Control-Allow-Methods: POST, GET, OPTIONS < Access-Control-Allow-Headers: * < Access-Control-Allow-Credentials: true < X-Frame-Options: ALLOW
今回のケースでは結局、nginxの設定を削除し、rails側の設定でALLOWとする。
投稿2018/02/01 10:10
編集2018/02/02 00:13総合スコア17
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/01 11:19
2018/02/02 00:29
2018/02/02 04:16
0
ちょっと質問内容とずれた回答になりますが、
ヘッダーに
Access-Control-Allow-Origin:*
を追加すると表示されませんか?
投稿2018/01/30 23:23
総合スコア910
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/01/31 23:57 編集
2018/02/01 07:09
2018/02/01 10:09
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。