Heim >Web-Frontend >js-Tutorial >Wie kann ich über Subdomains hinweg von einem Iframe aus auf die übergeordnete URL zugreifen?

Wie kann ich über Subdomains hinweg von einem Iframe aus auf die übergeordnete URL zugreifen?

Barbara Streisand
Barbara StreisandOriginal
2024-11-11 10:04:02251Durchsuche

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

Zugriff auf die übergeordnete URL vom Iframe über Subdomains hinweg

Der Zugriff auf die URL der übergeordneten Seite innerhalb eines Iframes ist im Allgemeinen unkompliziert, wenn sich beide Seiten darauf befinden die gleiche Domäne. Wenn sich der Iframe und die übergeordnete Seite jedoch auf unterschiedlichen Subdomains befinden, verhindern Cross-Domain-Scripting-Einschränkungen den direkten Zugriff auf die URL der übergeordneten Domain.

Cross-Site-Scripting-Einschränkungen

Cross-Site-Scripting-Schwachstellen treten auf, wenn ein bösartiges Skript auf einer Website auf Code auf einer anderen Website zugreifen und diesen ausführen kann. Browser-Sicherheitsrichtlinien erzwingen strenge Einschränkungen, um zu verhindern, dass solche Schwachstellen sensible Daten ausnutzen. Eine dieser Einschränkungen besteht darin, dass Skripte ohne ausdrückliche Genehmigung nicht auf Daten von Websites in verschiedenen Domänen zugreifen können.

Subdomains und Cross-Site Scripting

Während Subdomains logischerweise mit ihnen in Zusammenhang stehen Aus Sicherheitsgründen werden sie in der primären Domäne als separate Einheiten behandelt. Wenn daher ein Iframe auf einer Subdomain versucht, auf die URL der übergeordneten Seite auf einer anderen Subdomain zuzugreifen, interpretiert der Browser dies als Cross-Site-Scripting-Versuch und verweigert den Zugriff.

Alternative Lösung

Wenn die Anforderung lediglich darin besteht, die URL der Hauptseite (die URL der Adressleiste des Browsers) abzurufen, ist eine Problemumgehung verfügbar:

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

Dieser Code prüft, ob der Iframe und das übergeordnete Element vorhanden sind Seite befinden sich auf verschiedenen Subdomains. Wenn dies der Fall ist, wird die Eigenschaft document.referrer verwendet, um die URL der Seite abzurufen, die mit dem Iframe verknüpft ist. Wenn sie sich nicht auf verschiedenen Subdomains befinden, wird die Eigenschaft document.location.href verwendet, um die URL der übergeordneten Seite abzurufen.

Hinweis:

  • Fenster .parent.location ist zulässig, da es nur auf das Location-Objekt der übergeordneten Seite verweist, nicht auf deren spezifische Eigenschaften wie href.
  • document.referrer gibt möglicherweise nicht immer die URL des enthaltenden Dokuments zurück, insbesondere wenn Weiterleitungen vorhanden sind oder Zwischenseiten, die am Ladevorgang des Iframes beteiligt sind.

Das obige ist der detaillierte Inhalt vonWie kann ich über Subdomains hinweg von einem Iframe aus auf die übergeordnete URL zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn