19. CORS

어니언·2023년 2월 27일
0
post-thumbnail

CORS란 Cross-Origin-Resource-Sharing의 약자로, 서로 다른 출처를 가진 주소로 요청이 들어올 때 생기는 에러이다. 앞에서 말한 출처란 port번호를 포함한 url을 의미하는데 간단하게 예를 들어보면 http://localhost:3000/token/phone이 있다면 여기서 출처는 http://localhost:3000 을 말한다.

포트 번호가 다른 경우에 CORS에러는 발생하는데 이는 같은 localhost라할지라도 다른 출처로 인식하기에 발생한다.

CORS가 필요한 이유는 출처가 서로 다른 두개의 사이트가 제멋대로 소통을 하는 경우는 매우 위험하다. 웹 같은경우는 개발자도구만 열어도 여러 코드들을 포함한 각종 통신정보를 쉽게 열람할 수 있기 때문이다. 이 코드들과 정보를 가지고 비슷한 사이트를 모방해서 만들기도 쉽기때문이다. 즉, CORS정책은 백엔드를 보호하기 위해서 있는 것이아니고 브라우저를 보호하기위해 있다고 할 수 있다.

CORS의 동작을 살펴보면

simple request 경우 서버로 요청을하고, 서버의 응답이 왔을 때 브라우저가 요청한 출처와 맞는 access-control-request-header값을 비교해 유효한 경우 리소스를 응답하고 유효하지않다면 브라우저에서 막히고 에러를 발생시킨다.

profile
안녕하세요.

0개의 댓글