2

Web サイトでクリックジャッキングが発生するのを防ぐために、いくつかの方法があることに気付きました。JavaScript を使用してウェブサイトを iframe から抜け出させる方法もあれば、X-FRAME-OPTIONS ヘッダーを DENY または SAMEORIGIN に設定する方法もあります。私が言及した2つの方法のうち、どちらがより安全だと思いますか? これは、クリックジャッキングのテストに使用しているサンプル ページです。

<HTML>
<BODY>
<H1>Clickjacking Test</H1>
<IFRAME SRC="http://www.google.com/" HEIGHT="500" WIDTH="500"></IFRAME>
</BODY>
</HTML>

iframe ブレーク コードを使用すると、Firefox と Safari が iframe から抜け出すのが遅くなることがわかります。つまり、クリックジャッキング テストが表示され、その iframe から抜け出して元の Web サイトが表示されます。IE と Chrome では、目立たないほど高速です。しかし、X-Frame-Options ソリューションを使用すると、Web サイトがまったく表示されなくなります。ブロックされます。上記の例の google のように。だから私の質問は、どちらがより良い解決策ですか? 完全にブロックするか、iframe から抜け出す (2 つのブラウザーで遅い)

4

2 に答える 2

3

X-Frame-Optionsフレーミングを完全にブロックすることで問題を解決する「適切な」ソリューションです。これはより良い方法ですが、それをサポートしていないブラウザーがまだあります (最も顕著なのは IE < 8)。したがって、これらのケースに対応するには、JavaScript ソリューションも必要です

JavaScript フレームバスターには 2 つの問題があります。

まず、彼らのほとんどは、メイン ウィンドウをドキュメントに置き換えて、フレームから「抜け出そう」とします。ただし、親ウィンドウ内の攻撃者のドキュメントはナビゲートされるのを簡単に抵抗できます。回避策はありますが、[常に回避される] Frame Buster Buster ... バスター コードが必要です)。スクリプトがフレームに入れられたことを検出した場合、セキュリティの観点からより良い解決策はdocument.body.innerHTML、エラー メッセージを設定するなどして、ページ全体を使用できないようにすることです。

ペアレント ナビゲーション アプローチが行われるのは、フレームバスターが、ウェブマスターが検索エンジンなどのサイトからの不要なフレーミングから逃れるための手段として生まれたためです。これはセキュリティ上の問題ではなく、アクセスを制限してトラフィックを失うことを望まなかったため、セキュリティを提供しないソリューションを選択しました。

security="restricted"第 2 に、IE の属性を使用して iframe でフレームを実行するか、XSS フィルターに対する誤検知攻撃を使用するか、ユーザーが JS をオフにしているという理由だけで、フレームバスターの実行を防ぐことができます。JavaScript が有効になっている場合にのみページを機能させることでこれを回避できますが、明らかにアクセシビリティに悪影響を及ぼします。

于 2013-08-13T12:40:28.010 に答える