CORS에 대해 알아보려다가SOP까지 정리하게 되었네요.- 이 포스팅은 우아한Tech의 [Youtube] 10분 테코톡 🌳 나봄의 CORS을 보며 정리하였습니다.
Same Origin Policy, 동일 출처 정책
- 다른 출처의 리소스를 사용하는 것에 제한하는 보안 방식

https 프로토콜이 다르다.http 기본포트가 80이다.String Value 를 비교하기 때문에 다른 출처라고 판단한다.api/cors는 추가적으로 붙는 location이다. api 앞에까지만 비교해서 동일 출처로 판단한다.선량한 사용자가 인증 토큰을 가지고 있다.해커가 흥미진진한 내용과 링크를 메일을 통해 보낸다.선량한 사용자가 링크를 타고 들어가면서 이미 작성된 스크립트의 내용이 실행이 된다.해커는 선량한 사용자의 인증 토큰을 가지고 페이스북에 게시물을 올리는 해킹이 가능하다.하지만 SOP가 있다면?
- Cross Origin 이라 판단되면 SOP 에 위반되기 때문에, 이 요청은 받아들일 수 없다라고 판단하게 된다.
그렇다면 다른 출처의 리소스가 필요하다면 어떻게 할까?
Cross-Origin Resource Sharing, 교차 출처 리소스 공유
- 다른 출처의 자원을 공유
교차 출처 리소스 공유(Cross-Origin Resource Sharing, CORS)는 추가 HTTP 헤더를 사용하여, 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제입니다.
쉽게 말해 사전 확인하는 작업
ex) 친구야, 나 너희집에 오늘 놀러가도 돼?
ex) 어이, 서버 나 요청 보내도 돼?
Preflight 요청 없이 바로 요청을 날린다.
다음 조건을 모두 만족해야 사용이 가능합니다.
그냥 Simple Request 로 보내면 안되나?
CORS 를 모르는 서버를 위해서다.
만약 단순한 GET 요청이 아닌 DELETE 요청이라면 이미 서버에서 모든 처리를 하고 CORS 에러를 띄우는데, 에러를 이미 볼 땐 서버의 모든 데이터베이스가 삭제되어 버린 상황 😱
그렇기 때문에 Preflight 가 필요한 상황이다.
인증 관련 헤더를 포함할 때 사용하는 요청이다.
[mozilla] 교차 출처 리소스 공유 (CORS)
[Youtube] 10분 테코톡 🌳 나봄의 CORS
[Youtube] 웹개발 짜증유발자! CORS가 뭔가요?
잘못된 정보가 있으면 언제든 코멘트 부탁드립니다 👻