「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > 別のサブドメインの iFrame から親ページの URL を取得するにはどうすればよいですか?

別のサブドメインの iFrame から親ページの URL を取得するにはどうすればよいですか?

2024 年 11 月 18 日に公開
ブラウズ:160

How Can I Get the Parent Page's URL from an iFrame on a Different Subdomain?

iFrame からの親 URL へのアクセス: 制限事項と回避策

iFrame から親フレームの URL にアクセスするのは、特に次の場合に困難になることがあります。 iFrame は別のサブドメインにあります。これは、クロスサイト スクリプティング (XSS) 防止策によって課されたセキュリティ制限によるものです。

親フレームと同じドメインおよびサブドメインから iFrame にアクセスする場合、親の場所へのアクセスは、parent のような式を使用して簡単に行うことができます。 .document.location またはparent.window.location。ただし、ユーザーが強調したように、iFrame が別のサブドメインにある場合、このアプローチは失敗します。

この点をさらに説明するために、pageA.html が http://www.mysite でホストされている例を考えてみましょう。 .com/ および pageB.html (iFrame) は http://qa-www.mysite.com/ でホストされています。 pageB.html から親の URL を取得しようとすると、アクセス拒否エラーが発生します。これにより、サブドメインもクロスサイト スクリプティングの制限の対象となることが確認されます。

このような状況では親の URL に直接アクセスすることは禁止されていますが、利用できる回避策はあります。親フレームの URL を取得するには、次の JavaScript コードを使用できます:

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

注:

  • window.parent.location は、href プロパティ (window.parent.location) へのアクセスによって発生するセキュリティ エラーを回避します。 location.href).
  • document.referrer は、iFrame にリンクされているページの URI を参照します。 iFrame の場所が別のソースによって決定されている場合、これは含まれているドキュメントを返さない場合があります。
  • document.location はドキュメントの URL を指し、この場合は iFrame です。 window.location と window.parent.location が同一の場合、iFrame の href は親の href と同じになります。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3