피드로 돌아가기
If Everything Is Running on Localhost, Why Do We Still Get CORS Errors?
Dev.toDev.to
Security

Port 차이로 인한 Origin 불일치 해결 및 Browser-level Security 메커니즘 분석

If Everything Is Running on Localhost, Why Do We Still Get CORS Errors?

Khushi Patel2026년 6월 19일2beginner

Context

동일 호스트 내 서로 다른 Port를 사용하는 Frontend와 Backend 통신 시 발생하는 CORS 에러 분석. Browser가 Protocol, Domain, Port의 조합을 하나의 Origin으로 정의함에 따라 발생하는 Same-Origin Policy 제약 사항을 다룸.

Technical Solution

  • Protocol, Domain, Port 중 하나라도 다를 경우 서로 다른 Origin으로 간주하는 Browser 보안 모델 적용
  • 악의적 사이트의 API 무단 접근 및 데이터 탈취를 방지하기 위한 Same-Origin Policy 강제 수행
  • Server 측에서 Access-Control-Allow-Origin 헤더를 송신하여 특정 Origin의 리소스 접근을 명시적으로 허용하는 CORS 메커니즘 도입
  • Request 수신과 Response 송신은 정상적으로 처리되나 Browser 단에서 Response를 차단하는 Client-side 검증 프로세스 수행
  • Browser 보안 정책을 준수하지 않는 Postman 등의 Tool을 통한 API 정상 작동 여부 검증으로 이슈 지점 격리

1. Local 환경 개발 시 Port 번호가 다르면 서로 다른 Origin임을 인지하고 CORS 설정 검토

2. Backend 로그에 요청이 찍히나 Frontend에서 에러 발생 시 Browser의 CORS 차단 여부 확인

3. Access-Control-Allow-Origin 헤더에 허용할 정확한 Origin 주소 설정 확인

4. API 동작 자체의 문제와 Browser 보안 정책에 의한 차단을 구분하여 디버깅 수행

원문 읽기