서로 다른 출처에서 제공되는 리소스에 접근할 수 있도록 허용하는 정책
기본적으로 브라우저에선 보안 상의 이유로 동일 출처 정책(Same-Origin Policy)이 적용되어 있음
다른 출처의 서버에 요청을 보낼 경우, 해당 요청에 대한 응답에 접근할 수 없도록 막음
이로 인해 합법적인 요청까지 차단될 수도 있음
그래서 CORS가 개발됨
서버측에서 Access-Control-Allow-Origin 헤더를 설정하면, 특정 출처에서의 접근을 허용할 수 있음
ex- Access-Control-Allow-Origin으로 모든 출처에 대해 허용하거나 특정 출처만 선택적으로 허용할 수 있음
추가로, Access-Control-Allow-Methods와 Access-Control-Allow-Headers 헤더를 통해 HTTP 메소드나 특정 헤더를 허용할 수도 있음
이는 서버에서 수행되는 동작, 프론트엔드 개발자는 일반적으로 서버 개발자에게 클라이언트의 도메인을 허용하도록 요청해야 함
크로스사이트 요청 위조(CSRF) 공격의 위력을 낮추기 위해 존재
악성 웹사이트가 사용자의 요청을 도용하여, 의도치 않은 요청을 서버에 보내게 만드는 공격
ex - 피해자가 공격자의 웹사이트에 들어왔을 때 해당 사용자의 요청인 것처럼 타 사이트에 GET 요청을 보내 사용자의 개인정보를 탈취할 수 있음
SOP는 악성 사이트에서 임의로 다른 출처의 서버로 요청을 보내거나, 응답에 접근하는 것을 막아, CSRF 공격의 효과를 줄여줌