ホームページ >ウェブフロントエンド >jsチュートリアル >js はどのようにして iframe 内にあるかどうかを判断し、Web ページが他のサイトによって iframe 内にネストされるのを防ぐのでしょうか?

js はどのようにして iframe 内にあるかどうかを判断し、Web ページが他のサイトによって iframe 内にネストされるのを防ぐのでしょうか?

高洛峰
高洛峰オリジナル
2017-01-12 11:14:582138ブラウズ

1. js が iframe 内にあるかどうかを確認する方法

Js コード

//方式一
if (self.frameElement && self.frameElement.tagName == "IFRAME") {
   alert('在iframe中');
}
//方式二
if (window.frames.length != parent.frames.length) {
   alert('在iframe中');
}
//方式三
if (self != top) {
  alert('在iframe中');
}

2. Web ページが他のサイトによって iframe にネストされるのを防ぐ

次のコードをページに追加します93f0f5c25f18dab9d176bd4f6de5d30e

Js code

<script language="javascript">
<!--
if (top.location != location)
{
top.location.href = location.href;
}
//-->
</script>
//或
<script language="javascript">
if(self!=top){top.location.href=self.location.href;}
</script>

これにより、他の人が iframe を使用して Web サイトの任意のページをネストすることができなくなります。その結果、Web サイトへのホットリンクのアドレスを入力すると、自動的にあなたの Web サイトにジャンプします。 Webサイト。 。

信頼性が低い理由:

他の人が次のようなコードを使用してネストされた IFRAME 呼び出しを行うと、あなたのページの JavaScript コードを回避する可能性があります。

Js code

<iframe src="你的页面地址" name="tv" marginwidth="0" marginheight="0" scrolling="No" noResize frameborder="0" id="tv" framespacing="0" width="580" height="550" VSPACE=-145 HSPACE=-385></iframe>
<script language="javascript">
var location="";
var navigate="";
frames[0].location.href="";
</script>

2. 最も信頼できる方法:

他の人が IFRAME フレームワークを使用して自分の Web ページをネストして呼び出すのを完全に防ぐには、次の方法が最も信頼できます。は空のページであるか、値を割り当てることができます。ページの URL アドレスです。

Js コード

<script language="javascript">
if(top != self){
 location.href = "about:blank";
}
</script>

iframe を完全にブロックするもう 1 つの方法は、以下を追加することです:

Html コード

header("X-Frame-Options: deny");
header("X-XSS-Protection: 0");

これにより、次のような問題も発生します。 iframe -Frame-Options: http://localhost/××××.php をロードすると、「X によってロードが拒否されました」というエラーが表示され、フレーム化が許可されません。」

以上がこの記事の内容です。この記事の内容が皆さんの勉強や仕事に少しでもお役に立てれば幸いです。また、PHP中国語ウェブサイトも応援したいと思っています。

js が iframe 内にあるかどうかを判断し、Web ページが他のサイトによって iframe にネストされるのを防ぐ方法に関するその他の関連記事については、PHP 中国語 Web サイトに注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。