CORS란?
CORS(Cross-Origin Resource Sharing)는 웹 브라우저에서 실행되는 스크립트가 다른 출처(도메인, 프로토콜, 포트)의 리소스에 액세스하지 못하도록 제한하는 보안 정책입니다.
보안상의 이유로 웹 브라우저는 JavaScript와 같은 클라이언트 측 코드가 다른 출처의 리소스를 요청하지 못하도록 차단합니다.
이때 보안상의 이유로 다른 소스에서 요청한 리소스는 제한됩니다.
그러나 AJAX와 같은 기술을 사용하여 다른 소스의 리소스에 액세스하려는 경우가 많기 때문에 CORS 정책을 사용하여 다른 소스의 리소스에 안전하게 액세스할 수 있습니다.
서버 측에서 HTTP 응답 헤더 Access-Control-Allow-Origin을 사용하여 다른 출처의 요청을 허용하는 출처를 지정할 수 있습니다.
이를 통해 클라이언트 측 코드는 다른 소스의 리소스에 안전하게 액세스할 수 있습니다.
CORS 설정 방법
CORS(Cross-Origin Resource Sharing) 오류는 웹 애플리케이션이 서로 다른 도메인에서 리소스를 요청할 때 발생하는 보안 정책입니다.
CORS 오류를 해결하려면 수신 측과 송신 측 모두에서 서버 측을 구성해야 합니다.
Nginx에서 CORS를 설정하는 방법
Nginx에서 add_header 명령을 사용하여 CORS 헤더를 설정할 수 있습니다.
이렇게 하려면 nginx.conf 파일에 다음 구성을 추가합니다.
location / {
#CORS 허용
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
}
위 설정에서 액세스 제어 허용 원본모든 도메인의 요청을 허용하도록 설정됩니다.
특정 도메인의 요청만 허용하도록 이를 변경할 수 있습니다.
Apache에서 CORS를 설정하는 방법
Apache를 사용하면 .htaccess 파일에서 CORS 헤더를 설정할 수 있습니다.
이렇게 하려면 .htaccess 파일에 다음 설정을 추가하십시오.
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Methods "GET, POST, OPTIONS"
Header set Access-Control-Allow-Headers "DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range"
Header set Access-Control-Expose-Headers "Content-Length,Content-Range"
위의 설정에서도 액세스 제어 허용 원본모든 도메인의 요청을 허용하도록 설정됩니다.
특정 도메인의 요청만 허용하도록 이를 변경할 수 있습니다.
또한 Apache는 설정을 적용하려면 mod_headers 모듈을 활성화해야 합니다.
mod_headers 모듈이 활성화되지 않은 경우 Apache를 다시 시작하거나 서버를 다시 시작해야 합니다.
sudo a2enmod headers
sudo systemctl restart apache2
위 명령을 사용하여 mod_headers 모듈을 활성화하고 Apache를 다시 시작할 수 있습니다.
참조 URL
– CORS(Cross-Origin Resource Sharing) : https://sangchul.kr/171