Test origin prompta dotyczącego uprawnień dostępu do sieci prywatnej: ścieżka do migracji witryn przy użyciu protokołu HTTPS

Yifan Luo
Yifan Luo

Tło

Chrome 94 wprowadził blokowanie dostępu do sieci prywatnej z niebezpiecznych stron publicznych. Trwający test wycofania dostępu do sieci prywatnej z niezabezpieczonych kontekstów wykazał trudności w przenoszeniu do HTTPS witryn, na które to ma wpływ. Typowym problemem jest trudność migracji urządzeń prywatnych do HTTPS, co prowadzi do naruszeń kontroli treści mieszanych.

Aby rozwiązać wspomniany wcześniej problem, w ramach okresu próbnego origin Chrome 120 udostępniamy nową prośbę o przyznanie uprawnień

Prośba o uprawnienia jako nowa opcja

Dodanie nowego atrybutu targetAddressSpace jako opcji pobierania spowoduje, że żądanie będzie mogło pominąć sprawdzanie treści mieszanych.

Przykład:

fetch("http://router.local/ping", {
  targetAddressSpace: "private",
});

Zgodnie z zasadami dotyczącymi prywatnego dostępu do sieci: wprowadzenie procesów wstępnych każde żądanie sieci prywatnej będzie poprzedzone żądaniem wstępnym. To żądanie wstępne będzie zawierać nowy nagłówek Access-Control-Request-Private-Network: true, a odpowiednia odpowiedź musi zawierać nagłówek Access-Control-Allow-Private-Network: true.

Aby dostosować się do prośby o nowe uprawnienia, urządzenia muszą zawierać 2 nowe nagłówki odpowiedzi: Private-Network-Access-Name i Private-Network-Access-ID.

Private-Network-Access-Name: <some human-readable device name>
Private-Network-Access-ID: <the MAC address of the device>

Przykład:

Private-Network-Access-Name: "My Smart Toothbrush"
Private-Network-Access-ID: "01:23:45:67:89:0A"

Private-Network-Access-ID: 48-bitowa wartość przedstawiona jako 6 bajtów szesnastkowych rozdzielonych dwukropkami. Private-Network-Access-Name: prawidłowa nazwa jako ciąg znaków pasujący do wyrażenia regularnego ECMAScript /^[a-z0-9_-.]+$/. Maksymalna długość nazwy to 248 jednostek kodu UTF-8.

Prezentacja

Wersję demonstracyjną znajdziesz na stronie https://private-network-access-permission-test.glitch.me/.

Rejestrowanie się w wersji próbnej origin

Aby zachęcić deweloperów do stosowania bezpiecznych ograniczeń kontekstu w przypadku dostępu do sieci prywatnej, udostępniamy je w Chrome od wersji 120 do 122 jako próbę źródłową.

Aby umożliwić witrynie korzystanie z prośby o uprawnienia, zarejestruj się w ramach wersji próbnej:

  1. Poproś o token dla swojego źródła.
  2. Użyj tokena na jeden z tych sposobów:
    • W kodzie HTML: html <meta http-equiv="Origin-Trial" content="TOKEN_GOES_HERE">
    • W kodzie JavaScript: js const meta = document.createElement('meta'); meta.httpEquiv = 'Origin-Trial'; meta.content = 'TOKEN_GOES_HERE'; document.head.append(meta);
    • W nagłówkach HTTP: text Origin-Trial: TOKEN_GOES_HERE

Aby przesłać opinię lub sugestie dotyczące tej funkcji, zgłoś problem w repozytorium GitHub.

Zasoby