Пробная версия источника запроса разрешения на доступ к частной сети: путь для миграции веб-сайтов с помощью HTTPS, Пробная версия источника запроса разрешения на доступ к частной сети: путь для миграции веб-сайтов с помощью HTTPS

Ифань Ло
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-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, чтобы ваш веб-сайт мог использовать запрос разрешения:

  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 .

Ресурсы