TIL | CORS란 무엇인가

송치헌·2021년 12월 21일
0

TIL | HTTP와 통신

목록 보기
5/5

CORS란?


CORS(Cross Origin Resource Sharing)는 출처가 다른 서버의 자원에 접근하는 것을 제한하는 것이다.

CORS는 서버와 브라우저간에 안전한 교차 출처 요청 및 데이터 전송을 지원한다. XMLHttpResponse 및 Fetch 와 같은 API에서 교차 출처 요청의 위험을 완화한다.

Cross Origin


Cross Origin(교차 출처 혹은 다른 출처)은 다음을 뜻한다.

  • 프로토콜이 다른 경우 : httphttps
  • 도메인이 다른 경우 : www.a.comwww.b.com
  • 포트가 다른 경우 : :8000:5000

즉, Protocol + Host + Port 가 출처(Origin)이 되고 이 출처가 같으면 같은 출처(Same Origin), 하나라도 다르면 다른 출처(Cross Origin)가 된다.

CORS가 왜 존재할까


이렇게 다른 출처의 리소스에 접근하는 것을 제한하는 이유는 SOP(Same Origin Policy) 즉, 같은 출처 정책 때문이다.

브라우저는 보안상 이유로 이런 정책을 적용하고 있다. 다른 출처와의 리소스를 공유할 시 XSS(Cross-Site Scripting)또는 CSRF(Cross-Site Request Forgery, 또는 XSRF)와 같은 공격에 취약하게 된다.

XSS(Cross-Site Scripting)

  • 사이트 간 스크립팅이라고 하며 공격자가 웹 페이지에 악성 스크립트를 등록하고 유저는 악성 스크립트가 포함된 게시물을 열람하거나 어떠한 행동을 취했을 때 공격자에게 해당 사용자에 대한 정보가 넘어가게 된다.
  • 예를 들어, 공격자가 <script>유저의 쿠키에 접근!</script> 라는 게시글을 올렸을 때, 다른 유저가 그 게시글을 보기 위하여 클릭하게 되면 서버는 해당 요청을 호출하게 되고, 공격자가 올려놓은 악성 코드가 실행될 수 있다.

CSRF(Cross-Site Request Forgery)

  • 사이트간 요청 변조라고 하며 악성 스크립트가 실행되는 위치가 유저가 아닌 서버에서 실행된다.
profile
https://oraange.tistory.com/ 여기에도 많이 놀러와 주세요

0개의 댓글