JavaScript 의 원본 정책
동원 정의
두 페이지 가 같은 프로 토 콜 (protocol), 포트 (지정 하면), 호스트 를 가지 고 있다 면 이 두 페이지 는 같은 원본 (origin) 에 속 합 니 다.
아래 표 는 상대 적 인 것 을 보 여 주 었 다.http://store.company.com/dir/page.html 원본 검사 의 예제:
URL
결실
원인.
http://store.company.com/dir2/other.html
성공 하 다.
http://store.company.com/dir/inner/another.html
성공 하 다.
https://store.company.com/secure.html
실패 하 다.
협의 가 다르다
http://store.company.com:81/dir/etc.html
실패 하 다.
포트 가 다르다
http://news.company.com/dir/other.html
실패 하 다.
호스트 이름 이 다 름
파일: URL 의 origin 정의 참조.
원천 상속
about:blank
, javascript:
, data:URLs
에서 온 내용 은 불 러 온 문서 가 지정 한 원본 을 계승 합 니 다. URL 자체 가 자신의 원본 에 대한 정 보 를 지정 하지 않 았 기 때 문 입 니 다.IE 특례
동원 전략 을 처리 하 는 문제 에 있어 IE 는 두 가지 주요 한 차이 점 이 존재 한다.
이러한 예 외 는 비표 준 적 이 며, 다른 브 라 우 저 들 도 지원 하지 않 지만, 윈도 우즈 RT IE 기반 응용 프로그램 개발 에 도움 이 될 것 이다.
변경 소스
페이지 는 원본 을 바 꿀 수 있 지만 제한 을 받 을 수 있 습 니 다.스 크 립 트 는 document. domain 의 값 을 현재 필드 의 접미사 로 설정 할 수 있 습 니 다.
같은 소스 정책 에 예외 가 있 습 니 다. 스 크 립 트 는 document. domain 의 값 을 현재 도 메 인의 접미사 로 설정 할 수 있 습 니 다. 이렇게 하면 짧 은 도 메 인 은 후속 동원 검 측 근거 가 됩 니 다.가령http://store.company.com/dir/other.html 스 크 립 트 중 하나 가 다음 문 구 를 실 행 했 습 니 다:
document.domain = "company.com";
이 문 구 를 실행 하면 페이지 는 성공 적 으로 쌍 을 통과 할 것 이다.http://company.com/dir/page.html 의 동원 검사.마찬가지 로 copany. com 은 document. domain 을 othercopany. com 으로 설정 할 수 없습니다.
브 라 우 저 는 포트 번 호 를 따로 저장 합 니 다.모든 할당 작업 은
document.domain = document.domain
을 포함 하여 원래 포트 번 호 를 null 값 으로 덮어 씁 니 다.따라서 company. com: 8080 페이지 의 스 크 립 트 는 설정 document.domain = "company.com"
만으로 company. com 과 통신 할 수 없습니다.값 을 할당 할 때 포트 번호 가 null 이 되 지 않도록 포트 번 호 를 가 져 가 야 합 니 다.첨부: document. domain 을 사용 하여 하위 도 메 인 을 부모 도 메 인 에 접근 하 게 하 는 것 이 안전 합 니 다. 하위 도 메 인과 부모 도 메 인의 document. domain 을 같은 값 으로 설정 해 야 합 니 다.부모 도 메 인 을 원래 값 으로 간단하게 설정 하 더 라 도 이렇게 해 야 합 니 다.이렇게 하지 않 으 면 권한 수여 오류 가 발생 할 수 있 습 니 다.
크로스 도 메 인 네트워크 접근
같은 소스 정책 은 서로 다른 소스 간 의 상호작용 을 제어 합 니 다. 예 를 들 어 XML HttpRequest 나 탭 을 사용 할 때 같은 소스 정책 의 제약 을 받 습 니 다.상호작용 은 보통 세 가지 로 나 뉜 다.
< h3 > 크로스 도 메 인 접근 실현 < / h3 >
< p > 크로스 도 메 인 접근 을 위해 CORS 를 사용 합 니 다. < /p>
< h3 > 도 메 인 접근 차단 < / h3 >
- < p > 는 크로스 - 사이트 Request Forgery (CSRF token) 라 고 불 리 는 크로스 - 사이트 Request Forgery (CSRF) 태그 만 감지 하면 됩 니 다.이 표 시 를 사용 하여 페이지 의 크로스 오 버 읽 기 동작 을 막 아야 합 니 다. < /p>
- < p > 자원 의 크로스 오 버 읽 기 를 막 으 려 면 이 자원 이 삽입 되 지 않도록 해 야 합 니 다.끼 워 넣 는 행 위 를 막 는 것 은 필수 입 니 다. 끼 워 넣 는 자원 이 보통 정 보 를 노출 하기 때 문 입 니 다. < /p>
- < p > 크로스 오 버 사이트 의 끼 워 넣 기 를 막 습 니 다. 위 에 열거 한 끼 워 넣 을 수 있 는 자원 형식 이 아 닌 지 확인 하 십시오.대부분의 경우 브 라 우 저 는 Content - Type 메시지 헤드 를 준수 하지 않 습 니 다.예 를 들 어, < script > 탭 에 HTML 문 서 를 삽입 하면 브 라 우 저 는 HTML 을 자바 script 으로 해석 합 니 다. When your resource is not an entry point to your site, you can also use a CSRF token to prevent embedding. & lt; /p></li>
</ul>
<h2>크로스 스 크 립 트 API 접근 & lt; /h2>
<p>Javascript 의 API 에 서 는 iframe. contentWindow, window. parent, window. open 과 window. opener 등 문서 간 에 직접 참조 할 수 있 습 니 다.두 문서 의 원본 이 같 지 않 으 면 이 인용 방식 은 Window 와 Location 대상 의 접근 에 제한 을 추가 합 니 다.windows. postmessage 를 대체 방안 으로 사용 하여 도 메 인 문서 간 의 통신 을 제공 할 수 있 습 니 다.lt;/p>
<h2>크로스 필드 데이터 저장 접근 & lt; /h2>
<p>localstorage 와 IndexedDB 와 같은 브 라 우 저 에 저 장 된 데 이 터 를 원본 으로 분할 합 니 다.모든 원본 은 자신 만 의 저장 공간 을 가지 고 있 습 니 다. 원본 에 있 는 자바 script 스 크 립 트 는 다른 원본 에 속 하 는 데 이 터 를 읽 고 쓸 수 없습니다.lt;/p>
<p>window. name 속성 은 다가 올 때 데 이 터 를 저장 할 수 있 고 도 메 인 을 넘 어 접근 할 수 있 습 니 다.lt;/p>
<p>Cookies 는 서로 다른 소스 정의 방식 을 사용 합 니 다.한 페이지 는 이 필드 와 모든 부모 필드 에 쿠키 를 설정 할 수 있 습 니 다. 부모 필드 가 공공 접미사 (Public suffix) 가 아니라면 됩 니 다.Firefox 와 Chrome 은 Public Suffix List 를 사용 하여 도 메 인 이 공공 접미사 (Public suffix) 인지 여 부 를 결정 합 니 다.어떤 프로 토 콜 (HTTP / HTTPS) 이나 포트 번 호 를 사용 하 든 브 라 우 저 는 주어진 도 메 인 및 하위 도 메 인 이름 (sub - domains) 을 사용 하여 쿠키 에 접근 할 수 있 습 니 다.쿠키 를 설정 할 때 도 메 인, Path, Secure, Http - Only 표 시 를 사용 하여 접근 성 을 제한 할 수 있 습 니 다.쿠키 를 읽 을 때 출처 를 알 수 없습니다.안전 한 https 연결 을 사용 하 더 라 도 보 이 는 모든 쿠키 는 안전 하지 않 은 연결 설정 을 사용 합 니 다.lt;/p>
</div>
</div>
</div>
</div>
<!--PC 와 WAP 자체 적응 버 전 -- & lt;
<div id="SOHUCS" sid="1176901492741844992"></div>
<script type="text/javascript" src="/views/front/js/chanyan.js">
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JavaScript 의 원본 정책도 메 인 읽 기 동작 (Cross - origin reads) 을 허용 하지 않 습 니 다.하지만 내 장 된 자원 을 통 해 교묘 하 게 읽 기 접근 을 할 수 있다.예 를 들 어 포 함 된 그림 의 높이 와 너 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.