Фон
В 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/ .
Зарегистрируйтесь для участия в пробной версии Origin
Чтобы гарантировать, что запрос разрешения на доступ к частной сети поможет разработчикам применять ограничения безопасного контекста для доступа к частной сети, мы делаем их доступными в Chrome с версии 120 по 122 в качестве пробной версии.
Зарегистрируйтесь для участия в пробной версии Origin, чтобы ваш веб-сайт мог использовать запрос разрешения:
- Запросите токен для вашего происхождения.
- Используйте токен одним из следующих способов:
- В вашем 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 .