发布时间:2026 年 4 月 16 日
随着 Web 应用变得越来越复杂,尤其是随着集成生成式 AI 的兴起,保护用户数据已成为首要任务。因此,我们宣布推出连接许可清单的源试用,这是一种新的安全机制,可为文档和工作器创建网络沙盒。
背景
在现代 Web 生态系统中,敏感数据不断在客户端和服务器之间移动。这种移动性,再加上第三方脚本的复杂供应链以及生成式 AI 动态生成的代码的兴起,显著增加了数据渗漏的风险。
恶意脚本、捆绑库中的漏洞或生成式 AI 生成的代码中的意外行为可能会绕过应用级检查,从而将敏感信息发送到未经授权的端点。虽然内容安全政策 (CSP) 是一种强大的工具,可用于控制网页可以加载和执行的内容,但要管理其复杂性以专门限制网页的通信位置可能具有挑战性。这通常会导致政策过于宽泛,从而为未经授权的网络活动留下空间。
连接许可名单沙盒
连接许可名单提供了一种直接的方法来应对这些风险,即让浏览器成为源自您网页的所有网络连接的门卫。通过包含 Connection-Allowlist HTTP 响应标头,网站可以指定允许其上下文(例如文档或 Web Worker)发起的所有网络通信的确切网址模式。
此功能可强制执行框架级“默认拒绝”防火墙。在建立任何连接(例如子资源提取、导航重定向或 WebSocket 连接)之前,浏览器会根据许可名单验证目标。如果端点不匹配,浏览器会在网络层级阻止连接。即使恶意代码尝试绕过应用级逻辑,浏览器也会维护网络边界。
连接许可名单的工作原理
连接许可名单提供了一种直接的方法来应对这些风险,即让浏览器成为源自您网页的所有网络连接的门卫。通过包含 Connection-Allowlist HTTP 响应标头,网站可以指定其上下文发起的所有网络通信允许的确切网址格式。对于源试用,此功能仅支持文档上下文。
在建立任何连接(例如子资源提取、导航重定向或 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 和不受信任的代码:如果您的网站允许用户执行生成或不受信任的代码(例如在 Google 表格 Canvas 或开发沙盒中),连接许可名单可以防止代码将数据泄露到外部网域。
- 第三方监督:您可以确保即使第三方脚本遭到入侵,也无法将数据发送到未经授权的服务器。
- 架构防护措施:为应用的敏感部分强制实施严格的网络边界,确保仅与获批的后端进行通信。
与内容安全政策的区别
虽然连接许可名单和 CSP 的目标类似,但它们是互补的:
- 侧重于网络级:连接许可名单侧重于网络连接的目标,而不是资源的加载或执行方式。
- 覆盖范围广:它以统一的方式涵盖了导航、重定向和各种 Web 平台 API,例如 Fetch、WebRTC、WebTransport、DNS 预提取和预加载。
- 简化的语法:连接许可名单侧重于单个任务,从而简化了配置和安全审核。
尝试使用连接许可名单
连接许可名单功能可用于本地测试。源试用计划从 Chrome 148 开始,到 Chrome 151 结束。随着源试用的推进,我们将继续添加功能。在此试用期开始时,报告功能仅限于文档上下文;不支持专用 Worker、共享 Worker 和 Service Worker。如需详细了解支持的功能,请参阅注册参加源试用部分。
在本地测试
- 启用该标志:打开 Chrome,然后前往
chrome://flags/#connection-allowlist。将标志设置为已启用。 - 部署标头:将本地开发服务器配置为发送
Connection-AllowlistHTTP 响应标头。例如Connection-Allowlist: ("https://api.example.com/*" response-origin)。 - 使用开发者工具进行验证:打开 Chrome 开发者工具并执行会触发网络请求的操作。
- “网络”面板:检查是否存在“blocked:other”的请求或显示连接错误。
- 问题标签页:如果您的标头中存在任何解析错误,请查找详细报告。
注册源试用
虽然本地测试非常适合开发,但您需要注册源试用,才能在生产环境中为用户启用连接许可名单。
- 前往 Chrome 源试用信息中心。
- 找到 Connection Allowlists 源试用,然后点击注册。
- 按照源试用入门指南中的说明,将生成的令牌添加到您网站的网页或标头中。
源试用计划从 Chrome 148 开始,到 Chrome 151 结束。 随着源试用的推进,我们会继续添加功能,因此强烈建议您在测试连接许可名单时继续使用现有的 Web 安全机制。实验意向进一步详细说明了连接许可名单实现所涵盖的网络端点。
提供反馈
就该功能的设计和实用性提供反馈。如果您遇到问题或有改进建议,请与团队联系:
- GitHub:在
WICG/connection-allowlists代码库中提交问题或评论现有问题。 - Chromium bug 跟踪器:在 Chromium bug 跟踪器中创建问题。