나무모에 미러 (일반/어두운 화면)
최근 수정 시각 : 2025-04-15 17:26:38

CORS

1. 개요2. 설명3. 작동 원리4. 한계


파일:cors_principle.png

1. 개요

Cross Origin Resource Sharing(교차 출처 리소스 공유)의 약자로, 추가 HTTP 헤더를 사용하여 서로 다른 출처(도메인, 프로토콜, 포트)에 있는 웹 페이지나 서버가 서로의 자원에 접근할 수 있도록 허용하는 보안 메커니즘이다.

2. 설명

CORS는 브라우저가 임의의 웹 페이지에서 다른 웹 페이지의 자원에 무분별하게 접근하는 것을 막아 XSS(Cross-Site Scripting)와 같은 보안 위협으로부터 웹 페이지를 보호하는 역할을 한다. 브라우저는 기본적으로 동일 출처 정책을 따르는데, 특정 웹 페이지에서 로드된 스크립트는 해당 페이지와 같은 출처의 리소스에만 접근할 수 있다. 따라서 다른 출처로부터 자원을 요청하려면 CORS 헤더를 통해 해당 출처를 서버가 허용한다는 것을 브라우저에 알려야 한다.

CORS 정책을 다음 예시로 보자.

HTTP 요청을 보냈고, 서버로부터 받은 CORS 정책 헤더 값이 "https://namu.wiki"라고 하자.
URL 접근 가능한가?
https://namu.wiki/example 접근 가능: 프로토콜, 도메인, 포트가 같음
http://namu.wiki:8080/example 접근 불가: 프로토콜, 포트가 다름
http://namu.wiki/example 접근 불가: 프로토콜이 다름
https://tree.namu.wiki/example 접근 불가: 도메인이 다름

3. 작동 원리

4. 한계

CORS는 서버가 허용한 출처를 담은 헤더를 받아 브라우저가 판단하기 때문에, 각종 공격 기법들을 통해 브라우저가 CORS 정책을 무시하고 요청하도록 하는 경우가 있다.

분류