Origin
- 웹 브라우저에서 출처(origin)를 판단하는 기준
- 구성 요소: 프로토콜 + 호스트 + 포트
- 모든 요소가 일치해야 같은 origin
- 다르면 다른 origin으로 간주 (SOP 적용 대상)
- 예시
- http://example.com:80 vs https://example.com:80 → 다른 origin (프로토콜 다름)
- http://example.com vs http://api.example.com → 다른 origin (도메인 다름)
- http://example.com:80 vs http://example.com:8080 → 다른 origin (포트 다름)
- http://example.com:80 vs http://example.com → 같은 origin (포트 생략 시 기본 포트 적용)
- 웹 보안 정책(SOP, CORS)에서 중요한 기준
SOP (Same-Origin Policy)
- 웹 브라우저의 기본 보안 정책
- 같은 출처(origin)에서만 자원 접근 허용
- 출처 = 스킴(프로토콜) + 호스트(도메인) + 포트
- 예: http://a.com:80, https://a.com, http://b.com → 모두 다른 출처
- 다른 출처 자원 접근 시 차단
- 차단 대상: DOM 접근, 쿠키, 로컬스토리지 등
- 보안 목적: 악의적 스크립트로부터 보호
- 예: a.com에서 b.com의 사용자 데이터 접근 시도 차단
세 가지가 동일해야하지만 동일출처(프로토콜, 포트번호, 호스트)
CORS (Cross-Origin Resource Sharing)
- SOP의 제약을 완화하기 위한 표준
- 서버가 허용된 출처에 자원 공유 허용
- 브라우저가 요청 전 OPTIONS 방식의 Preflight(예비)전송
- 서버가 응답 헤더로 허용 출처 명시
- 주요 응답 헤더
- Access-Control-Allow-Origin: 허용할 출처
- Access-Control-Allow-Methods: 허용할 메서드
- Access-Control-Allow-Headers: 허용할 헤더
- Access-Control-Allow-Credentials: 쿠키 등 자격정보 포함 허용
- 예: 프론트 a.com → 백엔드 api.b.com 호출 시 CORS 필요
- 서버가 명시적으로 허용해야 브라우저가 응답 사용
'Network' 카테고리의 다른 글
HTTP (0) | 2025.05.13 |
---|---|
명령어와 설정 도구 (0) | 2025.05.13 |
네트워크 통신 방식 (0) | 2025.05.13 |
TCP, UDP, ICMP (0) | 2025.05.13 |
데이터 전송 구조와 캡슐화 (0) | 2025.05.13 |
네트워크 장비와 통신 흐름 (0) | 2025.05.13 |