今回は、X-FRAME-OPTIONSを使わずにクリックジャッキングを防ぐ対策について解説する。ただし、これらの対策は、「対策が実装されていないブラウザーがある」とか「対策の回避方法がある」といった欠点も持っている。そのためX-FRAME-OPTIONSによる対策が取れない場合に限り使うことを推奨する。
JavaScriptのWindowsオブジェクトを使用した対策
X-FRAME-OPTIONSの仕組みが主要ブラウザーに実装される前は、JavaScriptのWindowsオブジェクトを使用した対策がとられていた。ただしこの対策は、ユーザーのウェブブラウザーがJavaScriptの実行を許可している場合に限り有効となる。
●JavaScriptを使用した対策の記述例
<script type="text/javascript">
if(window.top !== window.self){
window.top.location = window.self.location
}
</script>
この記述例では、if (window.top !== window.self)といった記述部分により、iframe要素などにより表示されているかを判断している。もし自身がiframe要素などで表示されていると判断された時には、読み込み元のウェブページを代わりに表示させる。
この結果、ターゲットとなるウェブサイトのページがユーザーのブラウザに表示されなくなるため、クリックジャッキング攻撃の影響を受けなくなる。
ただし、この対策にはあえてここには記さないが、複数の回避方法が存在している。JavaScriptを使うクリックジャッキング攻撃への対策としては推奨しない。