본문 바로가기
Knowledge/CS

[CS] CORS 란?

by YoonJong 2022. 11. 25.
728x90

CORS (Cross-Origin Resource Sharing) 는서로 다른 도메인간에 자원을 공유하는 것을 의미하며,

교차출처 리소스 공유 라고도 부른다.

CORS 를 설정해주지 않거나 제대로 설정하지 않으면, 원하는 리소스를 공유할 수 없다.

 

MOZILLA

 

CORS 가 생긴 이유는 동일 출처 정책인 SOP (Same Origin Policy) 의 한계를 보완하기 위해서 생겼다.

SOP는 동일한 출처의 리소스에만 접근하도록 제한 하는 것을 의미한다.

 

출처는 프로토콜, 호스트명, 포트를 의미하는데 예를 들어보면 아래와 같다.

https://www.naver.com:80 이라고 하면, https 는 프로토콜 , naver.com 은 호스트명 , 80 은 포트번호이다.

만약 동일한 출처가 아닌 모든 출처를 허용하게 되면 보안에 문제가 생기게 된다.

네이버에서 로그인을 한 후, 해커가 만든 https://haker.com 라는 도메인 사이트에 접속하게 되면 유저가 획득한 인증 토큰이 자동으로 첨부되어 해커가 사용자인 척하면서 요청을 보낼 수 있게 된다.

 

 

CORS 는

도메인, 프로토콜, 포트 번호가 단 하나라도 다를 경우 출처가 다른 교차출처라고 판단해,

브라우저에서는 보안 때문에 Coress-Origin HTTP 요청을 제한한다.

 

대부분의 브라우저에서는 이를 기본적으로 차단하며, 

권한을 부여 받기 위한 Cross-Origin 요청은 서버에서 허가를 받아야하는데, 서버측에서 헤더를 통해서 사용가능한 자원을 알려준다.

 

출처를 비교하는 방법은 URL 구성요소 중 프로토콜, 호스트 , 포트 이렇게 3가지가 동일한지 확인한다.

모두 같으면 같은 출처로 인식하며,  하나라도 다를 경우 교차출처 요청을 실행한다.


모든 블로그가 비슷해서 잘 정리되어있는 블로그를 남겨두고 필요할 때 적용해볼 예정.

CORS 의 해결방법은 아래 블로그를 참고.

https://dev-pengun.tistory.com/entry/Spring-Boot-CORS-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0

 

[Spring Boot] CORS 설정하기

CORS란? (Cross-Origin Resource Sharing,CORS) 란 다른 출처의 자원을 공유할 수 있도록 설정하는 권한 체제를 말합니다. 따라서 CORS를 설정해주지 않거나 제대로 설정하지 않은 경우, 원하는대로 리소스를

dev.exd0tpy.xyz

 

728x90

댓글