본문 바로가기
Q&A2021년 3월 6일1분 읽기

Cross-Origin 문제와 CORS 보안 설정

최
최유진
조회 842댓글 1

프론트엔드 개발 중 CORS 에러가 자주 나는데, 보안과 어떤 관련이 있나요? Access-Control-Allow-Origin: *로 하면 안 되나요?

댓글 1

김김영삼5년 전

CORS(Cross-Origin Resource Sharing)는 브라우저가 다른 도메인으로의 요청을 제한하는 보안 정책입니다.

왜 존재하나: 악성 사이트에서 사용자의 브라우저를 통해 다른 사이트(은행 등)에 요청을 보내는 것을 방지합니다.

Access-Control-Allow-Origin: * 의 위험:

  • 모든 도메인에서 API에 접근 가능
  • 인증정보(쿠키, JWT)와 함께 사용 불가 (다행히)
  • 공개 API가 아니면 사용 금지

올바른 설정:

// 특정 도메인만 허용
Access-Control-Allow-Origin: https://myapp.com
Access-Control-Allow-Methods: GET, POST
Access-Control-Allow-Credentials: true

credentials: true와 *는 동시에 쓸 수 없도록 브라우저가 차단합니다.

Ctrl+Enter로 등록