Maison >interface Web >js tutoriel >Comment puis-je accéder à l'URL parent à partir d'une Iframe sur plusieurs sous-domaines ?

Comment puis-je accéder à l'URL parent à partir d'une Iframe sur plusieurs sous-domaines ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-11 10:04:02250parcourir

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

Accéder à l'URL parent à partir d'une iframe à travers les sous-domaines

Accéder à l'URL de la page parent à partir d'une iframe est généralement simple si les deux pages résident sur le même domaine. Cependant, lorsque l'iframe et la page parent se trouvent sur des sous-domaines différents, les restrictions de scripts inter-domaines empêchent l'accès direct à l'URL du parent.

Restrictions de scripts inter-sites

Les vulnérabilités de cross-site scripting se produisent lorsqu'un script malveillant sur un site Web est capable d'accéder et d'exécuter du code sur un autre site Web. Les politiques de sécurité du navigateur imposent des restrictions strictes pour empêcher de telles vulnérabilités d'exploiter des données sensibles. L'une de ces restrictions est que les scripts ne peuvent pas accéder aux données de sites Web sur différents domaines sans autorisation explicite.

Sous-domaines et scripts intersites

Alors que les sous-domaines semblent logiquement liés à leur domaine principal, du point de vue de la sécurité, ils sont traités comme des entités distinctes. Par conséquent, lorsqu'une iframe sur un sous-domaine tente d'accéder à l'URL de la page parent sur un autre sous-domaine, le navigateur interprète cela comme une tentative de script intersite et refuse l'accès.

Solution alternative

Si l'exigence est uniquement d'obtenir l'URL de la page principale (l'URL de la barre d'adresse du navigateur), une solution de contournement est disponible :

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

Ce code vérifie si l'iframe et la page parent se trouvent sur des sous-domaines différents. Si tel est le cas, il utilise la propriété document.referrer pour obtenir l'URL de la page liée à l'iframe. S'ils ne se trouvent pas sur des sous-domaines différents, il utilise la propriété document.location.href pour récupérer l'URL de la page parent.

Remarque :

  • fenêtre .parent.location est autorisé car il fait uniquement référence à l'objet Location de la page parent, et non à ses propriétés spécifiques comme href.
  • document.referrer ne peut pas toujours renvoie l'URL du document contenant, surtout s'il existe des redirections ou des pages intermédiaires impliquées dans le processus de chargement de l'iframe.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn