私人網路存取權提示來源試用:使用 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 存放區中提出問題。

資源