#SOP(Same-Origin Policy)
- 같은 Origin에만 요청을 보낼 수 있게 제한하는 보안 정책
- Origin의 구성
- URI Schema(ex. http, https)
- Hostname(ex. localhost, naver.com)
- Port(ex. 80, 8080)
- 이 중에 하나라도 구성이 다르면 SOP 정책에 걸림!
#CORS(Cross-Origin Resource Sharing)
서로 다른 Origin끼리 요청을 주고 받을 수 있게 정해둔 표준
1. Annotation 이용하기
origins, methods, maxAge, allowedHeaders를 각각 지정할 수 있다.
메소드에도 지정가능.
@GetMapping("/api/get")
@CrossOrigin(origins = "*", allowedHeaders = "*")
public class Controller {
}
2. Global 설정
아래와 같이 설정할 수 있다.
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("http://localhost:8080")
.allowedMethods("*");
}
}
- addMapping : URL 패턴 정의
- allowedOrigins : 자원 공유를 허락할 Origin을 지정. 여러 origin 설정 가능.
- allowedMethod : HTTP method 지정. 여러 method 지정할 수 있고, *도 사용가능.
- maxAge : 원하는 시간만큼 pre-flight 리퀘스트를 캐싱해둘 수 있다.
참고자료
https://shinsunyoung.tistory.com/86
https://dev-pengun.tistory.com/entry/Spring-Boot-CORS-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0
'서버 > Spring boot' 카테고리의 다른 글
#에러처리 (2) | 2022.02.07 |
---|---|
#AOP (0) | 2022.02.07 |
#ORM, JPA, Spring data JPA, SQL (0) | 2022.02.05 |
#Spring security (0) | 2022.01.28 |
#DI, IoC, Bean (0) | 2022.01.28 |