0

クリックジャッキングとは、ユーザーをだましてクリックしてはならないボタンをクリックさせ、悪意のあるアクションを実行させることです。

私は、マーチャント向けのオプションとして、ウェブサイトに埋め込んで支払いを行うことができる iFrame コンポーネントを提供する製品に取り組んでいます。サインインしたユーザーには、重要なアクションを実行するためにクリックできるボタンが iframe に表示されます。このアクションは、クリックが本当に自分のものである場合にのみ呼び出す必要があります。

私はこのコードを使用してクリックジャッキングを防ぎます:

if (top == self ||  parent != top ||  document.location.hostname != document.domain) {  top.location.replace("https:\/\/www.mysite.com\/?404");}

誰かが私のコードに侵入できますか?

注: x-frame-option は使いたくない

ありがとう

4

1 に答える 1

0

親からのクリックを Iframe から実際に制御することはできません。親からのクリックが Iframe 内をクリックしても、別のイベントがそれを監視している場合、別のドメインからのクリックを実際に防ぐことはできません。

しかし、すべてが失われるわけではありません.iframe自体はそれを止めることはできませんが、このようなものでラップすることはできます. これは jquery を想定しています。jQuery を使用する例を示すために、アプリケーションのネイティブ バージョンに変換するのが最善かもしれません。

<div id="i_wrap"><iframe src="SRC"></iframe></div>
<script>
$('#i_wrap').on('click',function(event){
event.stopPropagation();
});
</script>

もちろん、これで万能というわけではありません。まだ回避策はあります。また、新しい HTML 5 クロス ドキュメント メッセージングの一部を使用して、ここでいくつかの検証を行い、安全でないサイトのユーザーに警告することもできます (iframe にメッセージが表示されない場合、ボタンは表示されません)。

私はクロス ドキュメント メッセージング メソッドの経験がありませんが、異なるドメインを許可していない可能性が高いと確信しています (ただし、ある程度回避する方法はあるかもしれません)。

この質問は完全に明確ではなく、完全に理解していない可能性がありますが、質問を詳細に更新すると、それに合わせて回答を更新します.

于 2013-08-12T21:39:15.787 に答える