동일-출처 정책
1. 개요
동일-출처 정책(Same-origin policy)은 웹 브라우저의 보안 모델로, 웹 페이지가 다른 출처의 리소스에 접근하는 것을 제한하여 데이터 오염 및 무단 접근을 방지한다. 1995년 넷스케이프 내비게이터에 처음 구현되었으며, 웹 개발의 보안을 강화하는 데 중요한 역할을 한다. 출처는 scheme, host, port의 삼중항으로 결정되며, 웹 페이지 간의 상호 작용을 제어한다. `document.domain` 속성을 사용하거나, 교차 출처 리소스 공유(CORS), `postMessage()` 메서드, JSONP, 웹소켓 등을 통해 동일-출처 정책을 완화하거나 우회할 수 있다. 이 정책은 CSRF 공격, 쿠키를 통한 정보 유출 등의 보안 문제와 관련이 있으며, WebRTC, 교차 출처 포트 스캔, XSS 공격 등 다양한 공격으로부터 웹 애플리케이션을 보호하기 위한 보안 대책이 필요하다.
동일-출처 정책
일반 정보
| 이름 | 동일-출처 정책 |
|---|---|
| 영어 이름 | Same-origin policy |
| 일본어 이름 | 同一生成元ポリシー (Dōitsu Seisei Gen Porishī) |
| 설명 | 웹 브라우저의 중요한 보안 모델 |
| 목표 | 잠재적으로 악성적인 문서가 악의적인 방법으로 상호 작용하는 것을 막음 |
| 적용 대상 | JavaScript와 같은 클라이언트 측 스크립트 |
| 제한 | 한 출처에서 온 문서나 스크립트가 다른 출처의 리소스에 접근하는 것을 제한 |
| 출처 | 프로토콜, 포트 (명시된 경우), 호스트가 결합된 것 |
동작 방식
| 동일 출처로 간주되는 조건 | 두 URL이 프로토콜, 포트 (지정된 경우), 호스트가 동일한 경우 |
|---|---|
| 예외 | `document.domain`을 사용하여 출처를 완화할 수 있음 (그러나 보안 위험 초래 가능) CORS (Cross-Origin Resource Sharing)를 사용하여 출처 간 요청을 허용할 수 있음 |
| 출처 간 쓰기 | 일반적으로 허용됨 (예: form 제출, 리디렉션) |
| 출처 간 읽기 | 일반적으로 허용되지 않음 (그러나 CORS 또는 기타 메커니즘을 통해 허용 가능) |
| 출처 간 포함 | 일반적으로 허용됨 (예: ` |