CORS

김정현·2023년 1월 25일

CORS란?

  • 교차 출처 리소스 공유(Cross-origin resource sharing)의 약자
  • 현재 브라우저로 접속중인 페이지에서 자바스크립트를 이용해 다른 도멘인 또는 포트를 가진 주소로 요청을 하는 경우, 해당 리소스에 접근을 허용했는지 확인해 보안을 높이는 동작을 CORS라고 한다.

CORS 문제는 왜 발생할까?

  • 브라우저는 주소(도메인, 포트 중 하나라도)가 다른 경우 리소스의 출처가 다르다고 판단한다
  • 브라우저에서 출처가 다른다고 판단하면 어떻게 동작할까?
    1. 브라우저가 요청하려고 시도했던 주소에 "OPTIONS"메서드를 이용해 요청을 의도적으로 허용하고 있는게 맞는지 확인한다 이것을 CORS preflight라고 부른다
    1. 요청을 받은 서버는 평소와 똑같이 응답한다.
    2. 응답을 받은 브라우저는 요청에 대한 허가를 받지 못했다고 판단하고 CORS 에러를 발생시킨다
  • 이것은 브라우저에 구현된 비동기 요청 API에서만 동작하는 규칙으로, Thunder Client 같은 API Client를 이용해 요청하는 경우에는 절대 발생하지 않는다

0개의 댓글