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

Yifan Luo
Yifan Luo

背景

Chrome 94 禁止通过非安全的公共网站访问专用网络。正在进行的“从不安全情境访问专用网络”的试用版即将弃用,这让在将受影响的网站迁移到 HTTPS 时面临挑战。一个常见的担忧是难以将私人设备迁移到 HTTPS,进而导致违反混合内容检查政策。

为了解决前面提到的验证问题,Chrome 120 在源试用期间提供了新的权限提示

权限提示作为新选项

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

示例:

fetch("http://router.local/ping", {
  targetAddressSpace: "private",
});
<ph type="x-smartling-placeholder">

根据专用网络访问:引入预检规定,所有专用网络请求前面都会有预检请求。此预检请求将包含新的标头 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:一个 48 位值,表示为 6 个十六进制字节,以英文冒号分隔。 Private-Network-Access-Name:与 ECMAScript 正则表达式 /^[a-z0-9_-.]+$/ 匹配的字符串形式的有效名称。名称的长度上限为 248 个 UTF-8 代码单元。

<ph type="x-smartling-placeholder">

演示

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

注册参与源试用

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

请注册参与源试用,以便您的网站能够使用权限提示:

  1. 为您的源请求令牌
  2. 可通过以下某种方式使用令牌: <ph type="x-smartling-placeholder">
      </ph>
    • 在您的 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 代码库中提交问题。

资源