概要
あるページについて、セキュリティ対策として、以下を実装したい場合の方法。
・他サイトにiframeで埋め込まれるのを抑止したい
・特定のドメインにだけiframeでの埋め込みを許可したい
※セキュリティ上の観点では、JavaScriptでの実装ではなくphpなどサーバーサイドスクリプトでの実装が望ましいですが、あくまでJavaScriptで簡易に実装する方法として紹介します。
コード
jQueryがロードされている前提のコードです。
解説は、コード内のコメント参照。
$(document).ready(function(){
//リファラ取得
var ref = document.referrer;
//許可ドメインのリスト設定
var domainArr = new Array();
//複数ページある場合は、ページを置いた自身のドメインを追加しておかないと、ページ遷移するとエラー表示になってしまう。
domainArr.push("自身のドメイン.jp");
domainArr.push("許可する別ドメイン1.jp");
domainArr.push("許可する別ドメイン2.jp");
var flg = false;
for(var cnt=0;cnt<domainArr.length;cnt++){
//許可ドメインかどうか判定
if(ref.indexOf(domainArr[cnt])!=-1){
flg = true;
}
}
if(flg == false){
//許可ドメイン外の場合、htmlを書き換える
$('body').html('エラー:不正なアクセス');
}
});