外部 iframe はどのようにしてサイトからリダイレクトされますか?
どうすればこれを防ぐことができますか?
「リダイレクトリクエスト」を聞いて、クリックがなかった場合にそれらを防ぐことは可能ですか?
外部 iframe はどのようにしてサイトからリダイレクトされますか?
どうすればこれを防ぐことができますか?
「リダイレクトリクエスト」を聞いて、クリックがなかった場合にそれらを防ぐことは可能ですか?
外部 iframe はどのようにしてサイトからリダイレクトされますか?
parent.location
読み取り専用ではありません
どうすればこれを防ぐことができますか?
フレーム化されたくない信頼できないサード パーティのコンテンツをフレーム化しないことによって。
iFrameは、jqueryUiを使用して異なるiframe間でドロップオブジェクトをドラッグできることがわかるため、本体とウィンドウに到達できます。この場合、外部iframeはメインウィンドウに簡単に到達してwindow.location.hrefにすることができます。私は今とても忙しいですが、これはプリミティブjavascriptでうまくいくと思います。window.addEventListener('load'、function(){})またはlocationまたは他のイベントが機能する可能性がある場合、event.preventDefault()はリダイレクトを停止できます。しかし、私はまだ試していませんでした。[ハッシュチェンジを編集するか、このイベントのようにそれを行うことができると私は信じています:)]
あなたはそうしない。
これは太古の昔から「フレーム バスティング」と呼ばれてきました (「ネットに関する限り」)。子フレームは、必要に応じてホスティング ウィンドウを設定できます。
あなたができる唯一のことは<iframe>
、信頼できない場所ではありません。
これが私がやった方法です:
// Listen for unloads
var prevent_bust = 0
window.onbeforeunload = function() { prevent_bust++ }
setInterval(function() {
if (prevent_bust > 0) {
prevent_bust -= 2
var currentTime = new Date();
if((currentTime.getTime()-lastClick) > 500) { // If no clicks in the last .5 second don't redirect
window.top.location = 'http://justwalk.it/stuff/204/foo'
}
}
}, 1)
// Listen for clicks, save time of latest one
var currentTime = new Date().getTime(), lastClick ;
$("body").click(function () {
var currentTime = new Date();
lastClick = currentTime.getTime();
console.log('click time:'+lastClick);
});