发布时间:2026 年 9 月 23 日
现代 Web 应用日益复杂,集成了第三方脚本,有时还集成了生成式 AI 动态生成的代码。虽然这些集成功能非常强大,但也会显著增加数据渗漏的风险。为了应对这一风险,Chrome 152 引入了连接许可清单,这是一种新的安全机制,可让您为文档和 worker 创建严格的网络沙盒。
保护网络通信安全的挑战
您需要明确控制网页与之通信的端点,以管理依赖项并保护网站架构。恶意脚本或 AI 生成的幻觉代码可以绕过应用级检查,将敏感信息发送到未经授权的服务器。
虽然内容安全政策 (CSP) 是一种强大的工具,可用于控制网页可以加载和执行的内容,但它并非旨在限制网页的通信位置。CSP 会将请求分类为特定类型,当您只需要宽泛的网络边界时,这会引入过多的粒度。此外,CSP 并未涵盖所有 Web 平台 API,省略了 DNS 预提取、导航、WebRTC 等机制。
什么是连接许可清单?
连接许可清单通过让浏览器充当源自您网页的所有网络连接的守门人,来应对这些风险。它们提供了一种直接且简化的方法,用于管理使用 Fetch 和其他 Web 平台 API 发起的显式网络请求。
通过发送 Connection-Allowlist HTTP 响应标头,您可以指定允许用于所有网络通信的确切网址格式。这会强制执行框架级默认拒绝防火墙。在建立任何连接之前,浏览器都会根据您的许可清单验证目标,如果不匹配,则会在网络级别将其屏蔽。
如何使用连接许可清单
该政策使用标准化的 URLPattern 语法来定义允许的端点。此政策针对每个窗口或工作器上下文单独执行。
基本配置
您可以使用 response-origin 令牌,将提供响应的来源以及任何特定 API 端点动态添加到许可清单中。
Connection-Allowlist: ("https://api.example.com/*" response-origin)
处理重定向和 WebRTC
默认情况下,连接许可清单会屏蔽所有重定向和 WebRTC 连接。如果强制执行许可清单,则除非您明确选择启用,否则任何导致重定向的请求都会被屏蔽。
Connection-Allowlist: ("https://api.example.com/*"); redirects=allow; webrtc=allow
举报违规行为
如需在不中断服务的情况下监控潜在的中断,您可以在仅报告模式下部署该功能。此指令会解析政策,并将违规报告发送到指定的 Reporting API 端点,而不会阻止连接。请确保您还配置了 Reporting-Endpoints HTTP 响应标头,以将所选端点名称映射到实际网址。
Connection-Allowlist-Report-Only: ("https://trusted.com/*"); report-to=security-endpoint
关键使用场景
连接许可清单专为高安全性或动态环境而设计。 您会发现它们在以下方面特别有用:
- 保护生成式 AI:如果您的 Web 应用执行生成或不受信任的代码(例如 AI 生成的界面或开发沙盒),您可以阻止该代码将数据渗漏到外部网域。
- 第三方监督:嵌入第三方脚本或网页游戏时,您可以确保它们不会向未经授权的服务器发送数据,即使它们遭到入侵也是如此。
- 架构防护措施:您可以围绕应用的敏感部分强制执行严格的网络边界,确保仅与已获批准的后端进行通信。
此功能可作为对现有基于内容安全政策 (CSP) 的设置的渐进增强。
测试连接许可清单
连接许可清单功能从 Chrome 152 开始正式推出。您现在就可以开始保护您的 Web 应用,只需在服务器响应中添加该标头即可。
如需在开发期间测试配置,请执行以下操作:
- 将本地开发服务器配置为发送
Connection-AllowlistHTTP 响应标头。 - 打开 Chrome 开发者工具,在网络面板中检查是否有被屏蔽的请求,或在问题标签页中查看详细的标头解析报告。