PR

 今回は、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を使うクリックジャッキング攻撃への対策としては推奨しない。