웹 서버에서 CORS 설정하는 방법
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';
}
위의 설정에서 Access-Control-Allow-Origin은 어떤 도메인에서든 요청이 허용되도록 설정한 것입니다. 이를 변경하여, 특정 도메인에서만 요청을 허용할 수도 있습니다.
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"
위의 설정에서도 Access-Control-Allow-Origin은 어떤 도메인에서든 요청이 허용되도록 설정한 것입니다. 이를 변경하여, 특정 도메인에서만 요청을 허용할 수도 있습니다.
또한, Apache에서는 mod_headers 모듈을 활성화해야 설정이 적용됩니다. mod_headers 모듈이 활성화되어 있지 않다면, Apache를 재시작하거나 서버를 재시작해야 합니다.
sudo a2enmod headers
sudo systemctl restart apache2
위의 명령어를 이용하여 mod_headers 모듈을 활성화하고, Apache를 재시작할 수 있습니다.
참고URL
- 교차 출처 리소스 공유(Cross-Origin Resource Sharing, CORS) : https://scbyun.com/1179
'리눅스' 카테고리의 다른 글
우분투에서 HPE ssacli 도구 설치하는 방법(raid) (0) | 2023.04.19 |
---|---|
sleep 명령어 (0) | 2023.04.15 |
[리눅스] How to install JMeter on Linux (0) | 2023.04.11 |
CentOS7에서 EDAC(Error Detection And Correction) 로그 확인하는 방법 (0) | 2023.04.11 |
우분투에서 PHP-FPM 최신(php-fpm 8.2) 버전 설치하기 (0) | 2023.04.10 |