KoreanHackerTeam
Moderator
同源策略
1 定义与原理
1.1 同源定义
동일한 출처 : 프로토콜, 호스트, 포트두 URL의 프로토콜, 호스트 및 포트가 동일하면 두 URL은 동일한 원점으로 간주됩니다.
예
http //example.com/dir2/page2.html 균질
https://example.com/dir/page.html 다른 프로토콜과 다른 소스
http://example.com:81/dir/page.html 포트는 다르고 소스는 다릅니다
https://other.com/dir/page.html 호스트가 다르고 소스가 다릅니다.
도메인 이름과 해당 IP도 서로 다릅니다.
1.2 同源策略
동일한 오리핀 정책은 브라우저의 보안 기능입니다. 다른 출처의 클라이언트 스크립트는 명시적인 승인없이 상대방의 자원을 읽고 쓸 수 없습니다.동일한 원인 정책은 한 소스에서로드 된 문서 또는 스크립트가 다른 소스의 리소스와 상호 작용하는 방식을 제한합니다. 이것은 잠재적으로 악의적 인 파일을 분리하는 데 중요한 보안 메커니즘입니다.

1.3 跨域
HTML 태그 또는 JS를 사용하여 액세스 할 수있는 비 호모 자원에 액세스하는 것이 단순히 이해합니다. JS가 부식 이외의 원천에 액세스하면 액세스 요청이 전송 될 수 있지만 서버가 응답을 다시 보내면 클라이언트 브라우저가 기본적으로이를 수락하지 않습니다.1.4 同源策略限制
비 동기학 인 경우 JS는 다음 세 가지 행동 제한을받습니다.쿠키, 로컬 스토리지 및 indexdb를 읽을 수 없습니다
DOM은 얻을 수 없습니다
Ajax는 보내라고 요청하지만 브라우저는 반환 메시지를 수락하지 않습니다.
동일한 원인 정책은 "크로스 도메인"쓰기를 허용하지만 "크로스 도메인"읽기를 허용하지 않습니다. 쓰기는 업 링크를 의미하고, 요청 보내기, 요청 보내기, 읽기를 의미합니다. 다운 링크, 응답 수락 및 응답 수신;
1.5 两种常用的跨域方式
1.5.1 JSONP
원격 JS로드 및 원격 JS의 데이터를 가져올 수 있습니다.1.5.2 CORS
교차 도메인 리소스 공유를 해결하기 위해 제안 된 HTTP 헤더에 사용자 정의 필드를 추가하는 방법브라우저가 요청을 할 때 원산지 필드가 요청 헤더에 자동으로 추가됩니다. 서버는 원산지 필드를 검증하여 요청이 허용되는지 여부를 확인하여 브라우저에서 크로스 오리핀 액세스를 실현합니다.
CORS 的安全问题반환 패킷의 헤더에있는 액세스 제어 용량 소액이 사실 일 때, 쿠키가 요청에 포함되어 서버로 함께 전송 될 수 있음을 나타냅니다.
Access-Control-Origin 헤더가 제어 가능하고 Access-Control-Hallow-Credentials가 사실이라면 제어 가능한 웹 사이트를 사용하여 개인의 개인 정보 정보를 훔칠 수 있습니다.
마스터 스테이션이 자원 공유를 위해 CORS를 통해 하위 사이트와 신뢰 관계를 구축하면 공격자가 하위 사이트를 제어하면 마스터 스테이션의 데이터도 얻을 수 있습니다.

2 Cookie 与 DOM 中的同源策略
2.1 Cookie
동일한 오리핀 정책의 한계에 따라 비 호모 학적 사이트는 서로에게 쿠키를 읽을 수 없으며,이 제한은 부모/자식 도메인 이름에도 존재합니다.
두 사이트의 쿠키가 동일하지 않다는 것을 알 수 있습니다.
그러나 쿠키에 대한 동일한 원래 정책은 다른 사이트가 서로 액세스 할 수 있도록 도메인을 지정할 수 있다는 것입니다.


도메인 설정은 쿠키에서 브라우저의 상 동성 제한을 깨뜨립니다. 하위 사이트를 시작하고 하위 사이트를 통해 하위 사이트 쿠키를 얻을 수 있습니다.
정보
쿠키의 동일한 원래 정책은 프로토콜과 포트를 구별하지 않습니다.
2.2 DOM 树
동일한 오리핀 정책의 한계에 따라 비 호모 학적 사이트는 서로로부터 DOM을 얻을 수 없습니다. 여기서, 하위 도메인 사이에서 DOM을 얻는 예를 들어보십시오.

도메인을 설정함으로써 DOM에 대한 브라우저의 상 동성 제한이 깨졌습니다. 하위 사이트부터 시작하여 기본 사이트의 DOM 트리를 수정할 수 있습니다.
3 CORS 与 CSRF
相同点:모두 타사 웹 사이트에 의존해야합니다모두 Ajax 비동기 프로세스를 사용해야합니다
사용자 로그인은 일반적으로 필요합니다
不同点:타사 웹 사이트는 CORS 취약점을 사용하여 피해자의 민감한 정보를 읽을 수 있습니다.
타사 웹 사이트는 CSRF 취약점을 사용하여 피해자가 주입 및 전송의 민감한 작업을 완료하도록 유도 할 수 있습니다.
일반적으로 CORS 취약점이있는 장소에는 CSRF 취약점이 있습니다.