← 질문 목록
#38깊이 0

CORS는 무엇을 막는가?

인프라 · 보안기초프로토콜인증·인가

다른 출처에서 온 스크립트가 응답을 읽는 것을 막는다. 요청 자체를 막는 것이 아니다 — 서버에는 도착하고, 브라우저가 결과를 스크립트에 안 넘긴다.

  1. 1. 스크립트에서 브라우저로: 다른 출처로 DELETE를 보내겠다
  2. 2. 브라우저에서 서버로: 먼저 OPTIONS로 물어본다
  3. 3. 서버에서 브라우저로: 이 출처와 이 메서드는 허용한다
  4. 4. 브라우저에서 서버로: 그제서야 진짜 요청을 보낸다

단순한 요청은 이 예비 확인을 건너뛰고 바로 나간다. 그래서 폼 전송으로 하는 공격은 CORS로 못 막는다 — 그쪽은 CSRF 토큰의 몫이다.

핵심 정리

오해가 잦은 지점이 여기다. CORS는 내 서버를 지키는 장치가 아니라 사용자의 브라우저에 있는 자격 증명을 남의 페이지가 쓰지 못하게 하는 장치다. 서버 인증은 따로 있어야 한다.

쿠키를 함께 보내려면 양쪽이 더 엄격해진다. 출처를 *로 열어둘 수 없고 정확한 주소를 적어야 한다. 개발 중에 *로 열어놓고 배포에서 막히는 일이 여기서 나온다.

추천 꼬리질문

0/300

적은 내용은 AI 학습에 쓰일 수 있습니다. 이름이나 연락처는 넣지 말아 주세요.

관련 질문

CORS는 무엇을 막는가?