专用网络访问权限提示源试用:使用 HTTPS 迁移网站的路径

Yifan Luo
Yifan Luo

背景

Chrome 94 已禁止通过不安全的公开网站访问专用网络。您好!我们正在进行的弃用来自不安全情境的专用网络访问功能的试用揭示了将受影响的网站迁移到 HTTPS 时面临的挑战。一个常见的担忧是难以将专用设备迁移到 HTTPS,导致混合内容检查违规。

为了解决上述验证问题,在 Chrome 120 的源试用下提供了新的权限提示

权限提示作为新选项

通过添加新的 targetAddressSpace 属性作为提取选项,该请求将能够跳过混合内容检查。

例如:

fetch("http://router.local/ping", {
  targetAddressSpace: "private",
});

根据专用网络访问:引入预检,任何专用网络请求都将在预检请求之前执行。此预检请求将包含新的标头 Access-Control-Request-Private-Network: true,而相应的响应必须包含标头 Access-Control-Allow-Private-Network: true

为了适应新的权限提示,我们要求设备整合两个新的响应标头:Private-Network-Access-NamePrivate-Network-Access-ID

Private-Network-Access-Name: <some human-readable device name>
Private-Network-Access-ID: <the MAC address of the device>

例如:

Private-Network-Access-Name: "My Smart Toothbrush"
Private-Network-Access-ID: "01:23:45:67:89:0A"

Private-Network-Access-ID:以 6 个十六进制字节表示的 48 位值,以英文冒号分隔。 Private-Network-Access-Name:与 ECMAScript 正则表达式 /^[a-z0-9_-.]+$/ 匹配的有效名称,以字符串表示。名称的长度上限为 248 个 UTF-8 代码单元。

演示

您可以访问 https://private-network-access-permission-test.glitch.me/ 查看演示。

注册源试用

为确保专用网络访问权限提示有助于开发者为专用网络访问采用安全上下文限制,我们将以源试用的形式在 Chrome 120 到 122 版本中提供这些功能。

注册源试用,让您的网站能够使用权限提示:

  1. 为您的源请求令牌
  2. 您可以通过以下任一方式使用令牌:
    • 在您的 HTML 中: html <meta http-equiv="Origin-Trial" content="TOKEN_GOES_HERE">
    • 在您的 JavaScript 中: js const meta = document.createElement('meta'); meta.httpEquiv = 'Origin-Trial'; meta.content = 'TOKEN_GOES_HERE'; document.head.append(meta);
    • 在 HTTP 标头中: text Origin-Trial: TOKEN_GOES_HERE

如果您对此功能有任何反馈或建议,请在 GitHub 代码库中提交问题。

资源