CORS(Cross-Origin Resource Sharing)
특정 헤더를 통해 브라우저에게 한 origin에서 실행되고 있는 웹 애플리케이션이 다른 출처(cross-origin)에 원하는 리소스에 접근할 수 있는 권한이 있는지의 여부를 알려주는 메커니즘.
origin : 특정 페이지에 접근할 때 사용되는 URL의 프로토콜, host(도메인), 포트를 뜻함
same origin
같은 프로토콜(scheme), host, 포트가 같음
cross-origin
3가지 중, 하나라도 다름
SOP(Same-origin policy)
같은 Origin에만 요청을 보낼 수 있게 제한하는 보안 정책
CORS를 적용하는 방법 2가지
- 해당 클래스에 어노테이션
@CrossOrigin
추가
속성 origins@CrossOrigin(origins = "hhtp://localhost:8000") @RestController ...
- WebConfig에 CORS 설정
@Configuration public class WebConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") .allowedOrigins("~~"); // 이 한줄을 작성안하면 모든 도메인 허용하는 듯하다 } }