: 브라우저 대신 외부 서버에 요청을 보내고 응답을 받는 역할을 대리 수행하는 서버.
브라우저 측에서 직접 외부 서버에 요청을 보내지 않고, 클라이언트와 동일한 origin의 프록시 서버를 통해 요청을 보내면 SOP의 제한을 피할 수 있다.
: 서로 다른 출처라도 리소스 요청, 응답을 허용할 수 있도록 하는 정책
교차 출처 리소스 공유
도메인(Hostname): myshop.com
출처 (Origin): https://www.myshop.com
=> 출처가 다른 서버간의 리소스 공유
예전에는 프론트 , 백을 따로 구성하지 않아서 모든 처리가 같은 도메인 안에서 가능했다.
→ 시간이 지나면서 클라이언트에서 API를 직접 호출하는 방식이 당연해짐
→ 클라이언트와 API는 다른 도메인
=> CORS 정책이 생김 (출처가 다르더라고 요청과 응답을 주고 받을 수 있도록 서버에 리소스 호출이 허용된 출처를 명시)
서버에서 Access-Control-Allow-Origin 응답 헤더 세팅하기
'Access-Control-Allow-Origin': <origin> | * // 보안 취약
* 설정 → 출처에 상관없이 리소스에 접근할 수 있는 와일드카드이기 때문에 보안에 취약해진다.
'Access-Control-Allow-Origin': https://myshop.com // 직접 허용할 출처 세팅 추천
프록시 서버 사용
: 프록시 서버를 사용하여 웹 애플리케이션에서 리소스로의 요청을 전달하는 방법
ex) 웹 어플리케이션 :http://example.com - 데이터 요청 -> http://api.example.com
웹 애플리케이션 → http://example.com/api/proxy → (서버 내부 요청) → http://api.example.com
: 서로 다른 출처일 때 리소스 요청과 응답을 차단하는 정책
출처 :
매일메일 서비스 (질문 출처)
토스 - CORS(교차 출처 리소스 공유)