背景
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 存放區回報問題。