1

この問題に興味がありますIFrameはtop.Locationオブジェクト(クロスドメイン)で正確に何ができますか?

最近クリックジャッキングを防御する方法を見つけたいのですが、この解決策を見つけました。

ただし、このソリューションでは、どのページも私のページをiframeすることを禁止します。私が望むのは、ホワイトリストの一部のサイトが私のページをiframeできるようにすることです。

X-Frame-OptionsのAllow-Fromが私の目標を達成できることは知っていますが、IE6とIE7はこの機能をサポートしていません。

指定されたオリジンによってのみ、ページをフレーム化できるようにすることは可能ですか?

UPDATE @Padrig私の質問に答えてくれてありがとう。現在、あなたの回答にコメントすることはできません。そのため、質問を編集する必要があります。

私はあなたの解決策を試しましたが、うまくいきません。

http://www.b.com/poc/beframed.html

<script>
    if (self === top) || (top.location.hostname == 'www.a.com')) {
        alert(1);
    } 
</script>

http://www.a.com/poc/framer.html

<iframe src="http://www.b.com/poc/beframed.html"></iframe>

そして私のホストファイル:

127.0.0.1 www.a.com
127.0.0.1 www.b.com

Chromeブラウザにアラートがありません。

4

1 に答える 1

1

セキュリティ上の理由から、Javascriptでは、あるフレームが別のドメインの別のフレームのプロパティにアクセスすることを許可していません。

はい、可能ですが、document.referrerを使用します。

于 2012-04-27T01:55:25.793 に答える