2014-03-04 3 views
0

예를 들어 상위 도메인 인 www.example.com이라는 웹 사이트가 있습니다. 안에 프레임을 사용하고 있습니다. 프레임 안에서, 나는 www.mail.example.com가크로스 도메인 스크립팅을 극복하기 위해 상위 도메인과 상위 도메인 (iframe)의 차이를 찾는 방법

내가 (iframe을 내부 URL)를 구글이 가지고있는 같은 도메인이 mail.example.com 여부를 확인해야

...

이 십자가를 방지 호출 오전 프레임 스크립팅. 어떻게 구현합니까?

if (self != top) 
{ 
//redirect to the google.com 
} 


if (parent && parent.frames && parent.frames.length>0) 

하지만이 도움이되지 않습니다 ... 당신은 자바 스크립트를 사용하면 방지하려면 해킹 필요가 없습니다

+0

다른 사람들이 운영하는 실제 사이트 대신 예제로'example.com' /'example.net' /'example.org'를 사용하십시오. – Quentin

+0

https://developer.mozilla.org/en-US/docs/Web/API/Window.postMessage – Quentin

답변

1

:

조동사 나는

if (window.document.domain != top.document.domain) { 
    SWGuardianWindowOpen("http://google.com","_self",""); 
    } 

또 다른 .. 교체 아웃했다 동일하지 않은 출처 페이지가 귀하의 웹 사이트를 퍼갈 수 없습니다.

는 단순히 HTML 문서의 <head>에 다음 태그를 추가 (예 : http://jsfiddle.net/b28CK/show/) : 당신은 당신의 서버의 응답 헤더를 수정할 수있는 경우

<meta http-equiv="X-Frame-Options" content="SAMEORIGIN"> 

, 당신은 또한 X-Frame-Options: SAMEORIGIN 응답을 추가 할 수 있습니다 헤더를 사용하여 동일한 효과를 얻을 수 있습니다.

부모 원점을 검색하기 위해 JavaScript를 사용하려는 경우 location.ancestorOrigins을 사용하여 부모 원점 목록을 찾을 수 있습니다. Webkit 및 Chromium 기반 브라우저에서만 작동합니다.

+0

location.ancestorOrigins의 샘플을 보여 주실 수 있습니까? –

+0

@Kumar 상위 프레임부터 상위 프레임까지의 시작점 목록 (예 : scheme : // host, 예 : http : // example.com)입니다. for 루프를 사용하여 목록을 열거하십시오 (예 :'var origins = location.ancestorOrigins; for (var i = 0; i