1. ホーム
  2. iframe

[解決済み] "X-Frame-Optionsで表示禁止 "を克服する。

2022-03-21 23:24:22

質問

私は、他のいくつかのページをフレーム化し、単に見やすくするために1つのブラウザウィンドウに統合することを目的とした小さなウェブページを書いています。 フレーム化しようとしているページのいくつかはフレーム化を禁じており、Chromeで"Refused to display document because display forbidden by X-Frame-Options." というエラーを投げてきます。 これはセキュリティ上の制限(正当な理由による)であることは理解していますが、それを変更するためのアクセス権がありません。

X-Frame-Optionsヘッダーに引っかからないで、1つのウィンドウにページを表示するためのフレームまたは非フレームの代替方法はありますか?

どのように解決するのですか?

似たような問題で、自社サイトのコンテンツをiframeで表示しようとして(lightbox風のダイアログとして カラーボックス というヘッダがあり、テストサーバーでの読み込みを妨げていました。

これはどこにも文書化されていないようですが、もしあなたがiframe化しようとしているページを編集できる場合(例えば、あなた自身のページ)、単に任意の文字列で別のX-Frame-Optionsヘッダーを送信すると、SAMEORIGINまたはDENYコマンドを無効にすることが可能です。

例:PHPの場合、以下のように記述します。

<?php
    header('X-Frame-Options: GOFORIT'); 
?>

をページの先頭に置くと、ブラウザはこの2つを組み合わせて表示し、その結果、ヘッダーは

X-Frame-Options SAMEORIGIN, GOFORIT

...そして、iframeでページを読み込むことができるようになります。これは、最初のSAMEORIGINコマンドがサーバーレベルで設定されており、ページごとにそれを上書きしたい場合に有効だと思われます。

よろしくお願いします。