문서 격리 정책: 강력한 웹 기능을 쉽게 사용 설정

Camille Lamy
Camille Lamy

게시일: 2025년 5월 1일

Chrome 137부터 문서 격리 정책은 crossOriginIsolation을 더 쉽게 채택할 수 있는 새로운 기능입니다. COEP(Cross-Origin-Embedder-Policy)와 달리 문서 격리 정책은 프레임별로 적용되며 하위 프레임에 대한 요구사항이 없습니다. crossOriginIsolation를 사용 설정하면 문서 격리 정책을 통해 SharedArrayBuffers 또는 WebAssembly 스레드와 같은 강력한 웹 기능에 액세스할 수 있습니다.

교차 출처 격리란 무엇인가요?

교차 출처 격리는 브라우저 프로세스 내에서 문서와 동일 출처의 상대 항목을 둘러싸는 확실한 경계를 그립니다. 이렇게 하면 문서가 그룹화되지 않고 다른 출처의 문서와 리소스나 정보를 공유할 가능성이 줄어듭니다. 교차 출처 격리는 기본적으로 사이트 격리 또는 교차 출처 격리에 대한 기본 브라우저 엔진의 지원 상태와 관계없이 출처를 자체 프로세스로 로드할 수 있도록 하여 이를 실행합니다. 이를 통해 스펙터와 같은 예측 실행 공격으로부터 보호할 수 있습니다.

문서 격리 정책이란 무엇인가요?

문서 격리 정책은 COOP(Cross-Origin-Opener-Policy) 및 COEP(Cross-Origin-Embedder-Policy)에 비해 crossOriginIsolation을 구현하는 더 간단한 방법을 제공합니다. 프레임별로 격리할 수 있으므로 COEP를 지원하기 위해 삽입된 iframe이 필요하지 않습니다.

문서 격리 정책 작동 방식

문서 격리 정책을 사용하면 웹 애플리케이션 내에서 특정 프레임을 격리할 수 있습니다. 문서와 함께 Document-Isolation-Policy 헤더를 전송하면 문서가 보안 문제로 인해 제한되는 SharedArrayBuffers와 같은 강력한 기능에 액세스할 수 있습니다. COOPCOEP와 달리 문서 격리 정책은 문서가 통신할 수 있는 페이지나 삽입할 수 있는 하위 프레임에 제한을 적용하지 않습니다. 문서 격리 정책이 있는 문서는 교차 출처 팝업을 열고 이와 통신할 수 있습니다. iframe을 일반적으로 삽입할 수도 있습니다.

문서 격리 정책은 COEP와 마찬가지로 isolate-and-require-corpisolate-and-credentialless의 두 가지 모드를 갖습니다. 이러한 모드는 교차 출처 리소스 공유(CORS) 없이 로드된 교차 출처 하위 리소스가 처리되는 방식을 지정합니다. isolate-and-require-corp 모드에서 교차 출처 리소스는 Cross-Origin-Resource-Policy 헤더를 사용하여 교차 출처 리소스 정책을 명시적으로 선언해야 합니다. 그러지 않으면 차단됩니다. 이렇게 하면 리소스가 의도적으로 공유됩니다. 반대로 isolate-and-credentialless 모드를 사용하면 CORS 헤더 없이 교차 출처 리소스를 로드할 수 있지만 요청에서 모든 사용자 인증 정보 (예: 쿠키 또는 HTTP 인증)를 제거하여 리소스를 익명으로 취급합니다. 이 모드는 CORS가 아닌 리소스를 처리하는 데 있어 덜 제한적이지만 여전히 안전한 방법을 제공합니다.

문서 격리 정책으로 격리된 iframe은 격리되지 않은 동일 출처 iframe에 동기식 DOM 액세스 권한이 없습니다. 그러나 이러한 격리된 iframe은 여전히 postMessage와 같은 교차 출처 Window 메서드를 사용하여 격리되지 않은 프레임과 통신할 수 있습니다. 또한 스토리지 API에 대한 전체 액세스 권한을 유지하므로 격리가 사용 설정된 경우에도 동일한 출처 내에서 데이터를 유지하고 공유할 수 있습니다.