CORS이란? / 설정 확인 / 예제 정리

 

CORS란?

 

CORS(Cross-Origin Resource Sharing)은 웹 브라우저에서 다른 도메인의 API를 사용할 때, 보안을 위해 설정된 보안 정책입니다.

 

예를 들어, 웹 사이트 A가 API 서버 B에서 데이터를 가져오려 할 때, 

API 서버 B에서 CORS 허용 설정이 되어 있지 않으면 웹 브라우저에서 API 접근이 거부될 수 있습니다.

 

CORS 설정은 API 서버에서 HTTP 응답 헤더에 "Access-Control-Allow-Origin" 항목을 추가하여 허용할 도메인을 지정하는 것으로 가능합니다. 

 

예를 들어, 아래와 같이 설정할 수 있습니다.

$ Access-Control-Allow-Origin: https://example.com

 

이렇게 설정된 API 서버는 example.com 도메인에서만 API 접근이 가능하게 됩니다.

 

 

 

설정 방법

 

웹서버 별로 모든 요청에 대해 허용하는 방법은 아래와 같습니다.

Apache

httpconf 또는 .htaccess 파일에 설정

$ Header set Access-Control-Allow-Origin "*"

Nginx

nginx.conf 파일에 설정

$ add_header 'Access-Control-Allow-Origin' '*';

 

 

Tomcat 

web.xml 파일에 설정

<filter>
  <filter-name>CorsFilter</filter-name>
  <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
  <init-param>
    <param-name>cors.allowed.origins</param-name>
    <param-value>*</param-value>
  </init-param>
</filter>
<filter-mapping>
  <filter-name>CorsFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

 

 

curl 멍령어를 이용한 CORS 예제

 

http://example.com 도메인에서 http://api.example.com/resources/posts API 서버 접속

curl -X GET http://api.example.com/resources/posts \
  -H "Origin: http://example.com"

 

 

 서버에서 허용이 되어있는지 확인하는 방법

 

curl 명령어를 통해 대상 서버에 요청하고 응답 헤더를 확인하여,

대상 서버의 CORS 구성을 확인할 수 있습니다.

 

서버의 CORS 헤더를 확인하려면 다음 curl 명령을 사용합니다.

$ curl -I http://example.com

 

출력 결과

$ Access-Control-Allow-Origin: *

 

댓글

Designed by JB FACTORY

loading