连接许可名单源试用:保护 Web 应用的网络

发布时间: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。如需详细了解支持的功能,请参阅注册参加源试用部分。

在本地测试

  1. 启用该标志:打开 Chrome,然后前往 chrome://flags/#connection-allowlist。将标志设置为已启用
  2. 部署标头:将本地开发服务器配置为发送 Connection-Allowlist HTTP 响应标头。例如 Connection-Allowlist: ("https://api.example.com/*" response-origin)
  3. 使用开发者工具进行验证:打开 Chrome 开发者工具并执行会触发网络请求的操作。
    • “网络”面板:检查是否存在“blocked:other”的请求或显示连接错误。
    • 问题标签页:如果您的标头中存在任何解析错误,请查找详细报告。

注册源试用

虽然本地测试非常适合开发,但您需要注册源试用,才能在生产环境中为用户启用连接许可名单。

  1. 前往 Chrome 源试用信息中心
  2. 找到 Connection Allowlists 源试用,然后点击注册
  3. 按照源试用入门指南中的说明,将生成的令牌添加到您网站的网页或标头中。

源试用计划从 Chrome 148 开始,到 Chrome 151 结束。 随着源试用的推进,我们会继续添加功能,因此强烈建议您在测试连接许可名单时继续使用现有的 Web 安全机制。实验意向进一步详细说明了连接许可名单实现所涵盖的网络端点。

提供反馈

就该功能的设计和实用性提供反馈。如果您遇到问题或有改进建议,请与团队联系:

其他资源