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 :
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!