私人網路存取權提示來源試用:使用 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:48 位元的值,以 6 個十六進位位元組表示,並以冒號分隔。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 存放區回報問題。

資源