본문 바로가기

웹 프로그래밍

CORS(Cross-Origin Resource Sharing)

CORS란?

교차 출처 리소스 공유(CORS)는 추가적인 HTTP header를 이용해서 애플리케이션이 다른 origin의 리소스에 접근할 수 있도록 하는 메커니즘을 뜻한다. 하지만 다른 Origin에서 내 리소스에 함부로 접근하지 못하게 하기 위해 사용된다.

 

●출처(Origin)

- Origin이란 url 구조에서 프로토콜과 호스트, 포트를 합친 것을 말한다.

 

● 동일 출처 정책

- 보통 포스트맨으로 API를 테스트하면 정상 동작을 하는데, 브라우저에서 API를 호출하면 CORS policy 오류가 나는 경우가 있다. 그 이유는 브라우저가 동일 출처 정책(Same-Origin Policy: SOP)를 지켜서 다른 출처의 리소스 접근을 금지하기 때문이다. 

- 동일 출처 정책을 사용함으로써 얻는 장점은 XSS나 XSRF같은 보안 취약점을 노린 공격을 방어할 수 있다. 하지만 외부 리소스를 참고하는 것은 거의 필수이기 때문에 외부 리소스를 가져와야하는데 이때 외부 리소스를 사용하기 위한 SOP의 예외 조항이 CORS이다.

 

 

● CORS 에러 해결 방법

- CORS는 보통 서버에서 해결해 줘야 하기 때문에 백엔드에서 해결을 한다

- 서버에서 Access-Control-Allow-Origin 헤더를 포함한 응답을 브라우저에 보내는 방식으로 CORS 에러를 해결할 수 있다. 

'웹 프로그래밍' 카테고리의 다른 글

Rest API  (0) 2021.09.26
STRAPI 구현  (0) 2021.09.19
[웹 프로그래밍] 스토리지와 쿠키  (0) 2021.09.13
package.json의 역할  (0) 2021.09.07
크로스 브라우징(Cross browsing)  (0) 2021.09.03