iframe からのアクセスを拒否する .htaccess の設定方法

2016/01/19

ヘッダー部分に自身のサイトの情報と広告が掲載され、下部に iframe にて当サイトが表示されている海外のサイトのページを見かけてしまいました。

直接的な被害はないものの、このような表示のされ方は僕としても本意ではありません。リンクとして飛ばしてくれるならまだしも、iframe で表示して自前のコンテンツのような見せ方をしているのが引っかかります。

変にサイト偽装されるのは良い気分ではないので、どうにか iframe によるアクセスを拒否する方法は無いものかと調べてみると Mozilla developer network のサイトに答えを見つけました。

X-Frame-Options レスポンスヘッダ – HTTP

.htaccess へ記述して iframe によるアクセスを拒否する

Mozilla のサイトによると、HTTP レスポンスヘッダに含まれる X-Frame-Options を利用することで、iframe によるアクセス拒否を行うことができます。目的によって次の3パターンの方法で記述します。

  • 全てのサイトからのフレーム内表示を拒否する
  • 自身のサイト以外からのフレーム内表示を拒否する
  • 特定のサイトからのアクセスに限りフレーム表示を許可する

タイトルには .htaccess へ記述と書きましたが、管理者権限があり httpd.conf を編集できるのであれば、そちらへ記載した方が若干処理速度におけるパフォーマンスが良いです。

全てのサイトからのフレーム内表示を拒否する方法

Header always append X-Frame-Options DENY

完全に拒否する場合の記述方法です。自身のサイトから呼び出した場合でも表示出来ないようになっています。ありとあらゆる状況下において拒否するのであれば、この内容を記載してください。

自身のサイト以外からのフレーム内表示を拒否する方法

Header always append X-Frame-Options SAMEORIGIN

外部ドメインからの iframe 表示は拒否しても、自身のサイトからの呼出しにおいては表示を許容する設定になります。ご自身のサイト運営状況にもよりますが、基本的にはこちらの設定を行っておくと良いでしょう。

特定のサイトからのアクセスに限りフレーム表示を許可する

Header always append X-Frame-Options ALLOW-FROM [サイトURL]

URL 指定でフレーム内表示を許容するサイトが指定できる設定です。ただ、この記述方法、試しにこのサイトの URL (http://nj-clucker.com) を指定してみたのですが、うまく動作しないどころかサイトの表示においても 500 エラーが表示されてしまう始末です。あれこれ試行錯誤してみましたが、動作確認まで至りませんでした。

セキュリティ対策として設定する

ひとまず現時点においては、別ドメインからの iframe 表示を許容する予定は無いので、2つ目の SAMEORIGIN での設定を仕掛けておくことにします。また Mozilla のサイトを見ると、これを設定することでクリックジャッキング攻撃を防止できるそうなので、セキュリティの面からも設定しておきましょう。

※ クリックジャッキングとは、見た目は正常なサイトに見せかけて、別のサイトのコンテンツをクリックさせる攻撃方法です。

Name :
気力・体力勝負なシステム業界のエンジニアを経て、個人事業主として独立。Web サイト運営、動画制作など活動の場を広げています。目指すところへの道のりは険しいですが、自分が自分らしくあるために、一歩ずつ進んでいきます。

このブログでは、困ってたどり着いた人に、分かりやすく答えを提供できるように心掛けています。更新情報は、Twitter や Facebook ページを参照ください。よろしければフォローお待ちしています。

プロフィール詳細 Twitter @_NJ69_
Facebook ページ NJ-CLUCKER シェア
このブログが役に立ったら
「いいね!」お願いします
PAGE TOP ↑