피드로 돌아가기
Dev.toSecurity
원문 읽기
Port 차이로 인한 Origin 불일치 해결 및 Browser-level Security 메커니즘 분석
If Everything Is Running on Localhost, Why Do We Still Get CORS Errors?
AI 요약
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 보안 정책에 의한 차단을 구분하여 디버깅 수행