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ń:
- Poproś o token dla Twojego punktu początkowego.
- 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
- W kodzie HTML:
Jeśli chcesz przesłać opinię lub sugestie na temat tej funkcji, zgłoś problem w repozytorium GitHub.