2009-05-04 7 views
4

私は特定のサイトでクリックジャックを防ぐために、しばらくの間、カスタム関数を使用してきました。しかし、私は、さまざまなポピュラーなJavaScriptフレームワークを使用して、これを「イディオム的に」行う方法についてはあまりないことに気づいたことに驚いています。クリックジャックを防ぐためにJavaScriptフレームワークをどのように使用しますか?

フレームワークを使用してクリックジャッキ保護を実装しているjQuery、Dojo、YUI、および/またはExtJSのユーザーはいますか?私は例を見てみたい!

答えて

1

なぜライブラリを使用するのですか?

var all = document.getElementsByTagName('iframe'), l = all.length; 
while (l--) all[l].parentNode.removeChild(all[l]); 

しかし、実際にはライブラリが必要だと感じたら、 jqueryではこれはかなり簡単ですが、すべてのiframeを見つけて削除するだけです。

$(document).ready(function() { $('iframe').remove(); }); 
+0

私はあなたがライブラリを必要としないことを理解する - しかし、ライブラリがすでに使用中である可能性のケースでは、私は共通の「慣用表現」はどうなるか知りたいと思いました。 jqueryの例は素晴らしいです、ありがとう。 – TML

2

それほど単純ではありません。 上部フレームにより、ページがアンロードされるのを防ぐことができます。 私はそれを回避するには、次のコードを使用します。

if (window.top !== window.self) { 
    window.top.location.replace(window.self.location.href); 
    alert('For security reasons, frames are not allowed.'); 
    setInterval(function(){document.body.innerHTML='';},1); 
} 

これは、新しいページをロードするために、ブラウザの時間を与えるために)(警告使用しています。 すべてが失敗した場合、クリック可能な要素は残されません。

は完全な問題の説明を参照してください:frame-buster-buster-buster-code-needed

+1

参照:http://stackoverflow.com/questions/958997 – Chris

関連する問題