답변
실제로이 코드를 작성했습니다.
교차 하위 도메인 / 포트 혜성을 시도 할 때 iframe document.domain
은 상위 프레임 과 동일한 값 을 가져야합니다 . 불행히도 브라우저는 원래 document.domain
값에 대해 내부적으로 도메인 이름과 포트를 저장합니다 . 그러나 javascript의 getter 및 setter는 포트에 대해 아무것도 모릅니다. 그래서 문제는 이것입니다. 만약 상단 프레임 document.domain
이 ('example.com', 80)
이고 하단 프레임이 ('comet.example.com', 80)
이면 하단 프레임 ('example.com', 80)
도 어떻게됩니까?
호스트 이름 부분을 변경하면 반드시 포트가로 설정 null
되므로 할 수 없습니다. 따라서 할 수있는 최선 ('example.com', null)
은 하단 프레임에있는 것입니다. 따라서 상단 프레임도 해당 값으로 설정해야 document.domain=document.domain
합니다. 그것은에서 브라우저의 내부 표현을 변경 ('example.com', 80)
을 ('example.com', null)
한 후 모든 것이 최대 일치 및 크로스 포트 / 하위 프레임 통신 작동합니다.
답변
브라우저는 (a) 명시 적으로 설정되지 않은 경우 document.domain과 (b) 명시 적으로 설정된 경우 document.domain을 구분합니다. 동일한 값을 반환하더라도 …
값을 명시 적으로 설정하면 다른 하위 도메인 (동일한 상위 도메인 아래)의 스크립트와 “협력”할 의도가 있음을 나타냅니다.
상위 페이지와 외부 스크립트 모두 document.domain을 동일한 값으로 명시 적으로 설정하면 동일 출처 정책 제한이 무시되고 각 스크립트는 서로의 컨텍스트의 모든 (그렇지 않으면 제한된) 개체 및 속성에 액세스 할 수 있습니다.
답변
이 사이트에서 다음 정보를 찾았습니다 : devguru . 더 구체적으로 말하면 다음과 같습니다.
이 속성은 문서가 생성 된 서버의 도메인 이름을 설정하거나 반환합니다. 기본적으로 문서가 검색된 서버의 도메인 이름이 사용되지만이 이름의 접미사 (접미사 만)로 변경할 수 있습니다. 이를 통해 동일한 도메인 접미사를 공유하는 경우 서로 다른 서버에서 전달 된 문서간에 스크립트 속성을 공유하고 보안이 허용됩니다.
동일한 도메인에 대해 크로스 사이트 스크립팅을 허용하는 것 같습니다 (하위 도메인이 다른 경우에도).
document.domain을 건드리지 않으면 js 엔진은 동일한 도메인의 다른 자바 스크립트 만 허용한다고 가정합니다. 이 속성을 사용 하면 궤도 문서 상태와 같은 다른 하위 도메인 에 배포 할 수 있습니다 .
답변
는 document.domain
명시 적으로 설정되지 않은 경우 실제 URL에서 기본값을 가져옵니다. 브라우저는 document.domain
URL이 기본값으로 설정되었는지 또는 명시 적으로 설정되었는지 기록합니다. 둘 다 동일한 도메인에 대한 기본값이거나 둘 다 명시 적으로 동일한 도메인으로 설정되어야 작동합니다. 하나가 기본값이고 하나가 명시 적으로 설정되어있는 경우, 둘 다 읽으면 일치하는 경우 두 페이지는 여전히 서로 대화 할 수 없습니다.
참조 : https://developer.mozilla.org/en-US/docs/DOM/document.domain