CORS는 Cross Origin Resource Sharing의 약자이다.
===================================
# Origin이란?
URL 중 protocol, domain, port 번호를 합친 부분.
ex>
URL : https://test.com:8080/abc/cdcd.html
=> Origin : https://test.com:8080
===================================
웹 브라우저의 보안 정책 중 하나이며, 도메인 간 자원 공유를 지원하게 되는 옵션이다.
보안 상 이유로 인해 default는 '사용하지 않음' 이다.
CSP와는 비슷한 보안 문제를 다루는 기술이지만, 다른 개념이다.
CORS는 교차 출처 리소스 공유를 가능하게 하여, 다른 도메인에서 리소스를 요청할 수 있도록 허용한다. 서로 다른 도메인에서 오는 보안 제한을 설정하고, 이러한 리소스의 요청을 처리하는 방법을 지정하는 데 사용된다.
===================================
# SOP vs CORS
SOP(Same Origin Policy)는 다른 origin으로 요청을 보낼 수 없게 제한하는 브라우저의 기본 보안 정책이다.
그러나 브라우저 환경이 복잡해지고 기술이 발전함에 따라 서로 다른 origin끼리 데이터를 주고받아야 하는 일이 많아졌기에, SOP에서 CORS를 통해 예외를 둔 형태이다.
===================================
# CORS
- 동작 원리 : 브라우저에서 특정 origin에서 다른 origin으로 요청을 보낼 때, origin header 값에 자신의 origin을 설정하고, 서버로부터 응답을 받으면 응답의 Access-Control-Allow-Origin header에 설정된 Origin 목록에 요청된 origin header 값이 포함되어 있는지 검사한다.
따라서 CORS 요청을 위해서 서버에서 응답의 Access-Control-Allow-Origin header에 허용되는 origin의 목록 또는 *(와일드카드)를 설정해주면 된다.
그 외 3가지 유형이 있는데, 위 글을 참조한 아래 링크에서 자세한 내용을 확인할 수 있다.
https://it-eldorado.tistory.com/163
[Web] CORS (Cross Origin Resource Sharing) 이해하기
이번 포스팅에서 다룰 내용은 바로 CORS(Cross Origin Resource Sharing)이다. 웹 개발자라면 한 번쯤은 CORS와 관련하여 콘솔에 뜨는 빨간 글씨의 에러 때문에 짜증 났던 적이 있을 것이다. 하지만 CORS 정책
it-eldorado.tistory.com
===================================
# 테스트 (환경 : OHS 12.2.1.3)
=> 해당 부분은 httpd.conf 또는 mod_wl_ohs.conf에서 설정할 수 있다.
=> Header set Access-Control-Allow-Origin "*" 설정 안했을 경우
=> Header set Access-Control-Allow-Origin "*" 설정했을 경우
※ 단 위 설정은 말 그대로 모든 도메인에 한해서 모든 요청의 CORS를 허용하는 것이기 때문에, <Location>, <VirtualHost>등으로 필요한 도메인에 한해서 사용하는 것을 권장한다.
아래와 같이 Location을 두었을때, origin이 /OFM을 포함하고 잇으면 CORS가 나타났지만 그 외의 origin에 대해서는 CORS가 나타나지 않았음을 확인했다.
'WAS & WEB' 카테고리의 다른 글
Method 제한 및 OPTIONS 메소드 (0) | 2023.04.13 |
---|---|
Eclipse MAT (0) | 2022.12.14 |
Idempotent, ConnectRetrySecs, ConnectionTimeoutSecs, WLIOTimeoutSecs (0) | 2022.11.14 |
파일 업로드 용량 제한 (0) | 2022.09.30 |
Sticky Session & Cluster (0) | 2022.09.13 |