背景
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-Name
和 Private-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 版均已推出這些限製做為來源試用服務。
註冊來源試用,即可讓您的網站使用權限提示:
- 為來源要求權杖。
- 透過下列任一方式使用權杖:
- 在 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
- 在 HTML 中:
如果你對這項功能有任何意見回饋或建議,請前往 GitHub 存放區回報問題。