게시일: 2026년 4월 16일
특히 통합 생성형 AI가 부상하면서 웹 애플리케이션이 더욱 복잡해짐에 따라 사용자 데이터 보호가 최우선 과제가 되었습니다. 따라서 문서 및 작업자를 위한 네트워크 샌드박스를 만드는 새로운 보안 메커니즘인 연결 허용 목록의 오리진 트라이얼을 발표합니다.
배경
최신 웹 생태계에서는 민감한 정보가 클라이언트와 서버 간에 끊임없이 이동합니다. 이러한 이동성은 서드 파티 스크립트의 복잡한 공급망과 생성형 AI에서 동적으로 생성되는 코드의 증가와 결합되어 데이터 무단 반출 위험을 크게 높입니다.
악성 스크립트, 번들 라이브러리의 취약점 또는 생성형 AI 생성 코드의 의도하지 않은 동작은 애플리케이션 수준 검사를 우회하여 민감한 정보를 승인되지 않은 엔드포인트로 전송할 수 있습니다. 콘텐츠 보안 정책(CSP)은 페이지에서 로드하고 실행할 수 있는 항목을 제어하는 강력한 도구이지만, 페이지가 통신하는 위치를 구체적으로 제한하도록 복잡성을 관리하는 것은 어려울 수 있습니다. 이로 인해 승인되지 않은 네트워크 활동을 허용하는 광범위한 정책이 발생하는 경우가 많습니다.
연결 허용 목록 샌드박스
연결 허용 목록은 브라우저를 페이지에서 시작되는 모든 네트워크 연결의 게이트키퍼로 만들어 이러한 위험을 직접 해결하는 방법을 제공합니다. 사이트는 Connection-Allowlist HTTP 응답 헤더를 포함하여 문서 또는 웹 작업자와 같은 컨텍스트에서 시작된 모든 네트워크 통신에 허용되는 정확한 URL 패턴을 지정합니다.
이 기능은 프레임워크 수준의 '기본적으로 거부' 방화벽을 적용합니다. 연결이 설정되기 전에(예: 하위 리소스 가져오기, 탐색 리디렉션 또는 WebSocket 연결) 브라우저는 허용 목록에 대해 대상을 확인합니다. 엔드포인트가 일치하지 않으면 브라우저는 네트워크 수준에서 연결을 차단합니다. 브라우저는 악성 코드가 애플리케이션 수준 로직을 우회하려고 시도하더라도 네트워크 경계를 유지합니다.
연결 허용 목록 작동 방식
연결 허용 목록은 브라우저를 페이지에서 시작되는 모든 네트워크 연결의 게이트키퍼로 만들어 이러한 위험을 직접 해결하는 방법을 제공합니다. 사이트는 Connection-Allowlist HTTP 응답 헤더를 포함하여 컨텍스트에서 시작된 모든 네트워크 통신에 허용되는 정확한 URL 패턴을 지정합니다. 오리진 트라이얼의 경우 문서 컨텍스트에서만 지원됩니다.
연결이 설정되기 전에(예: 하위 리소스 가져오기, 탐색 리디렉션 또는 WebSocket 연결) 브라우저는 허용 목록에 대해 대상을 확인합니다. 엔드포인트가 일치하지 않으면 브라우저는 네트워크 수준에서 연결을 차단합니다. 이렇게 하면 악성 코드가 애플리케이션 수준 로직을 우회하려고 시도하더라도 네트워크 경계가 유지됩니다.
response-origin 토큰 사용
응답이 제공되는 오리진을 허용 목록에 동적으로 추가하는 response-origin 토큰을 사용할 수 있습니다.
Connection-Allowlist: ("https://api.example.com/*" response-origin)
이 예에서 페이지는 오리진의 모든 경로와 지정된 API 엔드포인트에 연결할 수 있습니다.
정책 위반 신고
사이트의 기능을 중단하지 않고 잠재적인 문제를 모니터링하려면 Connection-Allowlist-Report-Only 헤더를 사용하면 됩니다. 이 변형은 정책을 파싱하고 Reporting
API를 사용하여 지정된 엔드포인트로 정책 위반 보고서를 전송합니다.
Connection-Allowlist: ("https://trusted.com/*"); report-to=security-endpoint
주요 사용 사례
연결 허용 목록은 보안이 높은 환경 또는 동적 환경에 유용합니다.
- 생성형 AI 및 신뢰할 수 없는 코드: 사이트에서 사용자가 생성된 코드 또는 신뢰할 수 없는 코드를 실행하도록 허용하는 경우(예: Sheets Canvas 또는 개발 샌드박스) 연결 허용 목록은 코드가 데이터를 외부 도메인으로 유출하는 것을 방지할 수 있습니다.
- 서드 파티 감독: 서드 파티 스크립트가 손상되더라도 승인되지 않은 서버로 데이터를 전송할 수 없도록 할 수 있습니다.
- 아키텍처 보호: 애플리케이션의 민감한 부분에 엄격한 네트워크 경계를 적용하여 승인된 백엔드와만 통신하도록 합니다.
콘텐츠 보안 정책과의 차이점
연결 허용 목록과 CSP는 목표가 비슷하지만 상호 보완적입니다.
- 네트워크 수준에 중점: 연결 허용 목록은 리소스가 로드되거나 실행되는 방식이 아니라 네트워크 연결의 대상에 중점을 둡니다.
- 포괄적인 범위: 탐색, 리디렉션, 다양한 웹 플랫폼 API(예: Fetch, WebRTC, WebTransport, DNS 프리페치, 프리로드)를 통합된 방식으로 다룹니다.
- 간소화된 구문: 연결 허용 목록은 단일 작업에 중점을 두므로 구성 및 보안 감사가 간소화됩니다.
연결 허용 목록 실험
연결 허용 목록 기능은 로컬 테스트에 사용할 수 있습니다. 오리진 트라이얼은 Chrome 148부터 Chrome 151까지 실행될 예정입니다. 오리진 트라이얼이 진행됨에 따라 기능이 계속 추가됩니다. 이 트라이얼이 시작될 때 보고 기능은 문서 컨텍스트로 제한됩니다. 전용, 공유, 서비스 작업자는 지원되지 않습니다. 지원되는 항목에 관한 자세한 내용은 오리진 트라이얼 등록 섹션을 참고하세요.
로컬에서 테스트
- 플래그 사용 설정: Chrome을 열고
chrome://flags/#connection-allowlist로 이동합니다. 플래그를 사용 설정됨 으로 설정합니다. - 헤더 배포:
Connection-AllowlistHTTP 응답 헤더를 전송하도록 로컬 개발 서버를 구성합니다. 예를 들어Connection-Allowlist: ("https://api.example.com/*" response-origin)입니다. - DevTools로 확인: Chrome DevTools를 열고 네트워크 요청을 트리거하는 작업을 실행합니다.
- 네트워크 패널: '차단됨:기타' 요청 또는 연결 오류가 표시되는지 확인합니다.
- 문제 탭: 헤더에 파싱 오류가 있는 경우 자세한 보고서를 찾습니다.
오리진 트라이얼 등록
로컬 테스트는 개발에 유용하지만 프로덕션에서 사용자를 위해 연결 허용 목록을 사용 설정하려면 오리진 트라이얼에 등록해야 합니다.
- Chrome 오리진 트라이얼 대시보드로 이동합니다.
- 연결 허용 목록 오리진 트라이얼을 찾아 등록 을 클릭합니다.
- 오리진 트라이얼 시작 가이드에 설명된 대로 생성된 토큰을 사이트의 페이지 또는 헤더에 추가합니다.
오리진 트라이얼은 Chrome 148부터 Chrome 151까지 실행될 예정입니다. 오리진 트라이얼이 진행됨에 따라 기능이 계속 추가되므로 연결 허용 목록을 테스트하는 동안 기존 웹 보안 메커니즘을 계속 사용하는 것이 좋습니다. 실험 의도에서는 연결 허용 목록 구현에서 다루는 네트워크 엔드포인트를 자세히 설명합니다.
의견 보내기
기능의 디자인과 유용성에 관한 의견을 보내 주세요. 문제가 발생하거나 개선을 위한 제안사항이 있는 경우 다음 방법으로 팀에 문의하세요.
- GitHub:
WICG/connection-allowlists저장소에서 문제를 열거나 기존 문제에 댓글을 남깁니다. - Chromium 버그 추적기: Chromium 버그 추적기에서 문제를 만듭니다.