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

資源