"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 다른 하위 도메인의 iFrame에서 상위 페이지의 URL을 어떻게 얻을 수 있나요?

다른 하위 도메인의 iFrame에서 상위 페이지의 URL을 어떻게 얻을 수 있나요?

2024년 11월 18일에 게시됨
검색:560

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.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