⚽ CORS(Cross-Origin Resource Sharing)정의

  • CORS(교차 출처 리소스 공유)는 브라우저에서만 가지고 있는 체제입니다. 클라이언트가 자신의 도메인과 서로 다른 도메인 간의 리소스를 가져오고 싶은 경우, 정해진 규약을 통해 선택한 리소스에 접근 권한을 부여하도록 브라우저에 알려줍니다.

  • CORS는 웹 브라우저에서 실행되는 스크립트가 다른 출처(Origin)에서 리소스에 접근할 수 있는 보안 메커니즘을 제공합니다. 이는 웹 애플리케이션이 다른 도메인, 프로토콜 또는 포트에서 호스팅된 리소스에 접근할 때 발생하는 보안 제약을 완화하는 데 사용됩니다.



⚽ CORS 접하기

  • 우리가 쇼핑몰 프로젝트를 만든다고 가정하겠습니다. 로컬 환경에서 클라이언트 앱을 만들고 있을 것입니다. 이때 필요한 리소스가 있어서 외부 API 서버와 통신을 시도하는 경우 CORS 오류를 접합니다.

  • 이 때 보통 CORS 오류의 원인은 동일한 도메인의 리소스만 상호 작용을 허용하는 SOP 제한으로 인한 오류가 대부분이며, 이를 해결하려면 CORS를 구성해 줘야 합니다.



⚽ CORS 더 알아보기

📌 개념

  • 클라이언트는 자신의 도메인과 다른 도메인의 리소스를 가져오고 싶은 경우 HTTP 요청을 실행합니다. 하지만 브라우저는 보안을 위해 앞에서 설명한 것과 같이 SOP 제한을 둡니다. 이때 CORS를 구성해 줌으로써 서로 다른 도메인 간에 리소스를 공유 가능하도록 정보 요청과 응답을 가능하게 합니다.

📌 등장 배경

  • 브라우저에 자바스크립트가 도입된 이후, Netscape Navigatorr 2.02 버전에서 웹 보안을 위해 SOP가 등장합니다. 이는 동일한 도메인의 리소스만 상호 작용을 허용하는 정책인 것이죠. 이 말은 서로 다른 도메인의 리소스를 받아오는 것은 제한함으로써 잠재적인 보안 위협으로부터 보호해 주는 정책입니다.

  • 하지만 개발을 하다 보면 기능상 어쩔 수 없이 다른 도메인과 상호 작용을 해야 하는 경우가 존재합니다. 이를 대비하기 위해 SOP의 예외 정책으로 CORS 체제를 마련해 두었고, 결론적으로 CORS를 구성하여 사용하면 SOP의 제한을 받지 않게 됩니다.

profile
나 혼자 보려고 만든 개발 일기

0개의 댓글