1. 동일 출처 정책 (Same Origin Policy)
ㅇ 웹과 상호작용하는 자바스크립트 코드에 대한 보안 제약 (전송 제한) 사항 중 하나
- 전송 제한 종류 : 도메인, 메서드, 헤더
. 도메인 : 자바스크립트에서, 요청 가능한 사이트 도메인을 제한
. 메소드 : 전송 가능 메소드를 제한하는 것
. 헤더 : 웹브라우저 능력을 넘어서는 것을 금지
ㅇ 문서 출처가 동일한 곳으로 제한 (도메인 제한) : URL, 프로토콜, 호스트, 포트번호
- 이 중 하나라도 다르면 동일 출처 정책에 위반됨
- 또한, 동일 출처라도, `file://`은 안되고, `http://` 등 url이어야 만 됨
- 다만, 자바스크립트 코드를 포함하는 본 문서의 출처는 제약 받지 않음
. 즉, 해당 문서 전체에 자바스크립트 코드가 접근 가능
- 또한, 자바스크립트 코드는,
. 다른 서버에서 불러온 문서를 열거나 닫을 수 는 있지만,
. 그 안을 들여다 볼 수는 없음
2. 교차 출처 리소스 공유 (Cross-orgin Resource Sharing, CORS)
ㅇ 오리진 (출처, 도메인) 사이에 자원을 공유하는 방법으로써, W3C에서 규격화 함
- 여기서, 자원 공유는, XMLHttpRequest, fetch 등 웹 API에 의한 엑세스를 말함
- 특히, 외부 서비스에 대한 엑세스를 엄격하게 제한하려 함
ㅇ 아파치 웹서버 상에서, 허용 방법
- 설정 파일 (httpd.conf 또는 httpd-vhosts.conf)에서,
LoadModule headers_module modules/mod_headers.so
<Directory "디렉토리 위치">
Header set Access-Control-Allow-Origin "*"
</Directory>