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

Wprowadzenie

W Chrome 94 wprowadzono blokadę dostępu do niezabezpieczonych witryn publicznych z sieci prywatnej. Trwający okres próbny wycofywania dostępu do sieci prywatnej z niezabezpieczonych kontekstów ujawnił wyzwania związane z przechodzeniem takich witryn do HTTPS. Częstym problemem są problemy z migracją urządzeń prywatnych do protokołu HTTPS, co prowadzi do naruszenia zasad dotyczących treści mieszanej.

Aby rozwiązać wspomniany wcześniej problem, w ramach wersji próbnej origin Chrome 120 pojawia się nowa prośba o przyznanie uprawnień.

Prośba o zgodę jako nowa opcja

Jeśli dodasz nowy atrybut targetAddressSpace jako opcję pobierania, żądanie będzie pomijać sprawdzanie treści mieszanej.

Przykład:

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

Zgodnie z zasadą Dostęp do sieci prywatnej: wprowadzenie procesów wstępnych każde żądanie sieci prywatnej będzie poprzedzone żądaniem procesu wstępnego. To żądanie procesu wstępnego będzie zawierać nowy nagłówek Access-Control-Request-Private-Network: true, a odpowiadająca mu odpowiedź musi zawierać nagłówek Access-Control-Allow-Private-Network: true.

W związku z nową prośbą o przyznanie uprawnień wymagaliśmy, by urządzenia miały 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: wartość 48-bitowa w postaci 6 bajtów szesnastkowych rozdzielonych dwukropkiem. 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.

Pokaz

Tę prezentację znajdziesz na stronie: https://private-network-access-permission-test.glitch.me/.

Rejestrowanie się do testowania origin

Aby prośba o przyznanie uprawnień dostępu do sieci prywatnej pomagała deweloperom stosować ograniczenia kontekstowe związane z dostępem do sieci prywatnej, udostępniamy je w Chrome od wersji 120 do 122 w ramach wersji próbnej origin.

Zarejestruj się w programie testowania origin, aby Twoja witryna mogła korzystać z prośby o przyznanie uprawnień:

  1. Poproś o token dla Twojego punktu początkowego.
  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

Jeśli chcesz przesłać opinię lub sugestie na temat tej funkcji, zgłoś problem w repozytorium GitHub.

Zasoby