[WIL] CORS란?

컴클로딩·2022년 7월 22일
0
post-thumbnail

CORS?

CORS(Cross Origin Resource Sharing) : 클라이언트 애플리케이션과 다른 origin을 가진 서버 애플리케이션이 서로 통신할 수 있도록 허용하는 프로토콜

  • 교차 출처 리소스 공유 혹은 교차 출처 자원 공유라고 한다.
  • 여기서 다른 orgin은 뭘까?
    • 다른 origin이란 예를 들어 클라이언트 애플리케이션은 www.mysite.com 으로 올라가 있는 반면 서버 애플리케이션은 www.serverapi.com 으로 올라가 있다고 했을 때 클라이언트와 서버 애플리케이션은 다른 origin을 가졌다고 말합니다.
  • 사실 클라이언트와 서버는 같은 origin을 가진 경우에만 서로 통신을 할 수 있다. 이를 Same Origin Policy 라고도 한다.
    • 그 이유는 클라이언트와 서버의 origin이 달라도 통신을 무조건 허용하면 클라이언트에서 악의적으로 서버에 접근할 가능성이 너무 높기 때문이다.
  • 즉, 보안을 위해서 같은 origin일 때만 통신을 할 수 있는 것이다.
  • 그래서 같은 origin을 가진 경우에만 통신을 허용하여 웹 브라우저에서는 다른 origin을 가진 서버에 API를 호출할려고 하면 요청 자체를 막아버린다.
  • 그런데 클라이언트와 서버가 같은 origin을 가진 경우는 그렇게 많지 않다.
    • 여러가지 이유가 있지만 그 중 프로젝트에서 클라이언트의 크기가 커지면서
      클라이언트는 클라이언트데로 별도로 관리하기 위해 별도의 origin을 가지게 되었고
      서버는 서버데로 origin을 가지게 된 경우가 그렇다.
  • 물론 보안적인 이슈로 인해 클라이언트와 서버 애플리케이션을 다른 origin에 넣는 경우도 많다.
  • 유저에게는 서버에 직접적으로 접근할 수 있는 모든 방향을 차단하는 것이 좋기 때문이다.
    👉🏻 그래서 CORS가 필요한 것이다. 서로 다른 origin에서도 통신이 가능해야하는 상황이 온 것이기 때문이다.

React와 Spring Boot CORS통신 방법

참고자료

profile
어떠한 가치를 창출할 수 있을까를 고민하는 개발자. 주로 Spring으로 개발해요. https://comclothing.tistory.com/ 👈🏻티스토리 블로그로 이전 완료

0개의 댓글