이론공부
CORS(Cross-Origin Resource Sharing)
DJ.Kang
2025. 2. 13. 07:43
□ CORS(Cross-Origin Resource Sharing)
- 웹 브라우저에서 실행되는 보안 정책인 동일 출처 정책을 우회 할 수 있도록 도와주는 메커니즘
- 동일 출처 정책(Same-Origin Policy)
- 브라우저는 보안상 서버의 출처(origin)가 다르면 요청을 차단.
- 출처(origin) = 프로토콜 + 도메인 + 포트
- 예를 들어, 아래 두 개의 출처는 다르다.
- https://example.com (✅ 접근 가능)
- http://example.com (❌ 차단됨 - 프로토콜 다름)
- https://api.example.com (❌ 차단됨 - 서브도메인 다름)
- 동일 출처 정책이 없다면, 악의적인 사이트에서 다른 사이트의 API를 마음대로 호출할 수 있어 보안 문제가 발생할 수 있다.
- CORS 해결방법
- 서버 측에서 CORS 허용 응답 헤더 추가
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/api/**")
.allowedOrigins("https://example.com") // 허용할 도메인
.allowedMethods("GET", "POST", "PUT", "DELETE");
}
}
- HTTP 응답 헤더로 추가
Access-Control-Allow-Origin: https://example.com
Access-Control-Allow-Methods: GET, POST, PUT, DELETE