投稿

9月 18, 2011の投稿を表示しています

iframe内からWebページが読み込まれるのを防止する X-Frame-Options HTTP レスポンスヘッダ

イメージ
昨日とあるところに投稿された質問で"フレーム内に表示する許可がありませんというエラーが出る"と書かれていました。
そういった設定がWebページに対して可能なのかどうか調べてみたところ、X-Frame-Options HTTP レスポンスヘッダというものを使えばコントロールできるようです。

LINK: The X-Frame-Options response header

クリックジャッキング攻撃を防止するなどの目的で用意されたもののようですね。最近新しく出来たものではなく随分前からあるようです。今後使う機会もあるかもしれないので使い方を確認しておきました。


X-Frame-Optionsヘッダに設定可能な値はDENYとSAMEORIGINの2つがあります。

DENY フレーム内に表示するのを全面禁止
SAMEORIGIN 同じサイト内のページでフレームに読み込まれた場合だけ許可

これを読み出される側のページが含まれるサイトで設定します。例えば http://www.example.com/ でDENYを設定しておくと、このサイトに含まれるページは自分のサイトを含めどのサイトに含まれるページからもiframeで読み込むことが出来なくなります。

設定方法を行なうには例えば .htaccess ファイルに次の設定を追加すればいいようです。

Header always append X-Frame-Options SAMEORIGIN

では実際に試してみます。

今回、サイトAに他のページを読み込む index.html と読み込まれるページ frame1.html を用意します。また別のサイトBに読み込まれるページ frame2.html を用意します。

index.htmlでは次のように他のページをiframeで読み込んでいます。

<body> <iframe src="http://サイトA/frame1.html" width="400" height="100"> frame test1 </iframe> <iframe src="http://サイトB/frame2.html" width="400" he…