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

資源