Maison >interface Web >js tutoriel >Les Iframes peuvent-elles accéder à l'URL de la page parent dans les sous-domaines ?

Les Iframes peuvent-elles accéder à l'URL de la page parent dans les sous-domaines ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-16 00:05:03646parcourir

Can Iframes Access the Parent Page's URL Across Subdomains?

Accès à l'URL parent à partir d'un Iframe

Bien que résidant sur le même domaine, l'impossibilité de récupérer l'URL de la page parent via un iframe survient souvent lorsque les sous-domaines diffèrent. Ce comportement soulève la question : le cross-site scripting (XSS) s'étend-il aux sous-domaines ?

Comprendre la restriction

La réponse réside dans les mesures de sécurité du navigateur. Même si la page principale et l'iframe partagent un domaine (par exemple, www.monsite.com), la distinction de sous-domaine (par exemple, www vs qa-www) relève de différentes « origines ». Cette séparation empêche les acteurs malveillants d'accéder et de manipuler les données sur différents sites Web et leurs sous-domaines.

Solution alternative

Alors que l'accès direct à l'URL de la page parent est restreint en raison de XSS préoccupations, une approche alternative peut fournir les informations nécessaires. Pour obtenir l'URL de la page parent (c'est-à-dire l'URL du navigateur), le code suivant peut être utilisé :

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

Remarque :

  • window.parent.location est accessible et évite la sécurité erreurs.
  • document.referrer peut ne pas toujours renvoyer l'URL du document contenant si une source externe a influencé l'emplacement de l'iframe.
  • document.location fait référence au document actuel (l'iframe) et à son URL. Il fournit l'URL parent souhaitée si l'iframe et le parent partagent le même href.

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