ホームページ >ウェブフロントエンド >jsチュートリアル >サブドメイン間の Iframe から親 URL にアクセスするにはどうすればよいですか?

サブドメイン間の Iframe から親 URL にアクセスするにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-11 10:04:02251ブラウズ

How Can I Access the Parent URL from an Iframe Across Subdomains?

サブドメインを越えて iframe から親 URL にアクセスする

両方のページが存在する場合、iframe 内から親ページの URL にアクセスするのは通常簡単です。同じドメインです。ただし、iframe と親ページが異なるサブドメインにある場合、クロスドメイン スクリプティングの制限により、親の URL に直接アクセスできなくなります。

クロスサイト スクリプティングの制限

クロスサイト スクリプティングの脆弱性は、ある Web サイト上の悪意のあるスクリプトが別の Web サイト上のコードにアクセスして実行できる場合に発生します。ブラウザのセキュリティ ポリシーでは、このような脆弱性による機密データの悪用を防ぐために厳格な制限が適用されます。これらの制限の 1 つは、スクリプトが明示的な許可なしに異なるドメイン上の Web サイトのデータにアクセスできないことです。

サブドメインとクロスサイト スクリプティング

サブドメインは論理的にはそれらの Web サイトに関連しているように見えますが、プライマリ ドメインでは、セキュリティの観点から、それらは別個のエンティティとして扱われます。したがって、あるサブドメインの iframe が別のサブドメインの親ページの URL にアクセスしようとすると、ブラウザはこれをクロスサイト スクリプティングの試みとして解釈し、アクセスを拒否します。

代替ソリューション

メイン ページの URL (ブラウザのアドレス バー URL) を取得することだけが要件の場合は、次の回避策が利用できます。

var url = (window.location != window.parent.location)
            ? document.referrer
            : document.location.href;

このコードは、iframe と親かどうかを確認します。ページは異なるサブドメイン上にあります。存在する場合、document.referrer プロパティを使用して、iframe にリンクされているページの URL を取得します。異なるサブドメインにない場合は、document.location.href プロパティを使用して親ページの URL を取得します。

注:

  • window .parent.location は、href などの特定のプロパティではなく、親ページの Location オブジェクトのみを参照するため、許可されます。
  • document.referrer は、特にリダイレクトがある場合、常に含まれるドキュメントの URL を返すとは限りません。または iframe の読み込みプロセスに関与する中間ページ。

以上がサブドメイン間の Iframe から親 URL にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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