[CS] CORS 란?

이유은·2023년 12월 7일

[CS]

목록 보기
6/11
post-thumbnail

CORS

Cross Origin Resource Sharing

한 사이트에서 주소가 다른 서버로 요청을 보낼 때 자주 접하게 되는 오류..?
어디서는 되고 어디서는 안돼 !!! 뭘까 이게

어디에서 보낸 요청이 cors로 막히는지를 보자
웹사이트에서 ajax 요청 보낼때마다.. 브라우저에서 일어나는 문제! 프론트엔드

네이버지도같은 api 서비스들이 내 크롬을 안믿는거냐 ?
사실 이 cors라는 이유로 요청을 막는건 브라우저 쪽이다!
그럼 크롬이가 날 못믿는거 ?

내가 방문한 사이트를 못믿는거!

내가 방문한 사이트들은 내가 만든게 아닐 확률이 높음

내 의지랑 상관없이 브라우저에 저장된 내 정보를 가지고 악의적인거를 할 수 있음
api에다가도 해괴한 짓을 할 수 있자너 그니까 방지하고 있는 거 !

그 막고있는건 sop / same origin policy / 동일 출처 정책
풀어주는 역할이 cors

동일 출처의 반대개념
다른 출처간에 리소스를 공유할 수 있도록 하는 것

리소스 - 주고 받아지는 데이터

서로다른 출처끼리 정보요청과 반환이 가능하게 해주는 것이
cors

원래 안되는 게 기본값이었음!!

되게 하려고 cors를 만듦.
보다 자유롭게 데이터를 주고 받을 필요가 있으니까 ~

요청을 받는 백엔드 쪽에서 이걸 허락할 다른 출처들을 미리 명시해둠!
백엔드를 프로그래밍 할 때 쓰는 프레임워크들
스프링 장고 등의 문서를 살펴보면, cors 옵션 넣는 방법들이 마련되어있음
거기에 허용할 사이트 적어주면 됨!!

아무나 보내도 되는 요청의 경우 일반적인 방법으로 별표, 와일드카드 넣으면 누구나 쓸 수 있게 됨

브라우저는 다른 출처끼리의 요청이 보내질 때 요청에 오리진이라는 header를 추가
헤더란 데이터가 다른 곳으로 전송될 때 데이터의 맨 앞쪽에 붙은 보충 정보라고 보면 됨
받는 쪽의 ip주소, 사용할 프로토콜이나 옵션등이 담기는데, 우편으로 치자면 봉투에 적힌 내용

이 헤더의 오리진 항목에는 요청하는 쪽의 scheme과 도메인 그리고 포트가 담김
스킴이란 - 요청한 항목에 접근할 방법 / http, ftp 등을 말함
프로토콜 이라고도 함

http가 스킴 , 미친토키.com이 도메인 그리고 :443 등이 달려있으면 그게 포트

답장의 헤더에 지정된 access-control-allo-origin 정보를 실어 보냄

보안을 잘 신경쓰자 .

profile
우당탕코딩

0개의 댓글