Nowy komunikat z prośbą o dostęp przez sieć lokalną

Chris Thompson
Chris Thompson

Data publikacji: 9 czerwca 2025 r.

W ramach wstępnej specyfikacji dostępu do sieci lokalnej Chrome dodaje nowe okienko z prośbą o przyznanie uprawnień dla witryn, które nawiązują połączenia z siecią lokalną użytkownika. Celem jest ochrona użytkowników przed atakami polegającymi na fałszowaniu żądań między witrynami (CSRF) na routerach i innych urządzeniach w sieciach prywatnych oraz ograniczenie możliwości wykorzystywania tych żądań przez witryny do tworzenia odcisku palca sieci lokalnej użytkownika.

Aby zrozumieć, jak ta zmiana wpływa na ekosystem internetowy, zespół Chrome prosi o opinie programistów, którzy tworzą aplikacje internetowe korzystające z połączeń z siecią lokalną użytkownika lub z oprogramowaniem działającym lokalnie na jego komputerze. Od wersji 138 Chrome możesz włączyć te nowe ograniczenia, przechodząc do chrome://flags/#local-network-access-check i ustawiając flagę na „Włączone (blokowanie)”.

Czym jest dostęp przez sieć lokalną?

Dostęp do sieci lokalnej ogranicza możliwość wysyłania przez witryny żądań do serwerów w sieci lokalnej użytkownika (w tym do serwerów działających lokalnie na jego komputerze), wymagając od użytkownika przyznania uprawnień witrynie przed wysłaniem takich żądań. Możliwość żądania tego uprawnienia jest ograniczona do bezpiecznych kontekstów.

komunikat z tekstem „Szukaj urządzeń w sieci lokalnej i łącz się z nimi”;
Przykład prośby o przyznanie uprawnień do sieci lokalnej w Chrome

Wiele innych platform, takich jak Android, iOS i MacOS, ma uprawnienia do dostępu do sieci lokalnej. Na przykład podczas konfigurowania nowego urządzenia Google TV lub Chromecasta możesz przyznać aplikacji Google Home uprawnienia do dostępu do sieci lokalnej.

Jakich rodzajów żądań dotyczy zmiana?

W przypadku pierwszego etapu dostępu do sieci lokalnej „żądanie sieci lokalnej” to dowolne żądanie z sieci publicznej do sieci lokalnej lub do pętli zwrotnej.

Sieć lokalna to dowolne miejsce docelowe, które jest mapowane na prywatną przestrzeń adresów zdefiniowaną w sekcji 3 specyfikacji RFC1918 w protokole IPv4 (np. 192.168.0.0/16), adres IPv6 mapowany na adres IPv4, przy czym mapowany adres IPv4 jest prywatny, lub adres IPv6 spoza podsieci ::1/128, 2000::/3 i ff00::/8.

Loopback to dowolny cel, który jest rozwiązywany do przestrzeni „loopback” (127.0.0.0/8) zdefiniowanej w sekcji 3.2.1.3 dokumentu RFC1122 dotyczącego IPv4, przestrzeni „link-local” (169.254.0.0/16) zdefiniowanej w RFC3927 dotyczącej IPv4, prefiksu „Unique Local Address” (fcc00::/7) zdefiniowanego w sekcji 3 dokumentu RFC4193 dotyczącego IPv6 lub prefiksu „link-local” (fe80::/10) zdefiniowanego w sekcji 2.5.6 dokumentu RFC4291 dotyczącego IPv6.

Sieć publiczna to dowolna inna sieć.

Ponieważ uprawnienia do dostępu do sieci lokalnej są ograniczone do bezpiecznych kontekstów, a przeniesienie urządzeń w sieci lokalnej na HTTPS może być trudne, żądania z dostępem ograniczonym do sieci lokalnej będą teraz wyłączone z sprawdzania treści mieszanych jeśli Chrome wie, że żądania będą wysyłane do sieci lokalnej przed rozszyfrowaniem miejsca docelowego. Chrome wie, że żądanie jest wysyłane do sieci lokalnej, jeśli:

  • Nazwa hosta żądania to prywatny adres IP (np. 192.168.0.1).
  • Nazwa hosta żądania należy do domeny .local.
  • Wywołanie fetch() jest opatrzone adnotacją z opcją targetAddressSpace: "local".
// Example 1: Private IP literal is exempt from mixed content.
fetch("http://192.168.0.1/ping");

// Example 2: `.local` domain is exempt from mixed content.
fetch("http://router.local/ping");

// Example 3: Public domain is not exempt from mixed content,
// even if it resolves to a local network address.
fetch("http://example.com/ping");

// Example 4: Adding the `targetAddressSpace` option flags that
// the request will go to the local network, and is thus exempt
// from mixed content.
fetch("http://example.com/ping", {
  targetAddressSpace: "local",
});

Co się zmienia w Chrome

Chrome 138

Nasza pierwsza wersja Dostępu przez sieć lokalną jest gotowa do testów w ramach wczesnego dostępu w Chrome 138. Użytkownicy mogą włączyć nowy prompt, ustawiając opcję chrome://flags#local-network-access-check na „Włączone (blokowanie)”. Umożliwia to wywołanie prośby o przyznanie uprawnień dostępu do sieci lokalnej w przypadku żądań inicjowanych za pomocą interfejsu API JavaScript fetch(), ładowania zasobów podrzędnych i nawigacji w ramce.

Witryna demonstracyjna jest dostępna pod adresem https://local-network-access-testing.glitch.me/. Można w niej wywoływać różne formy żądań do sieci lokalnej.

Znane problemy i ograniczenia

  • Nowe okienko z prośbą o uprawnienia jest obecnie dostępne tylko w Chrome na komputery. Pracujemy nad przeniesieniem go do Chrome na Androida. (Śledzenie w crbug.com/400455013.)
  • Połączenia WebSockets (crbug.com/421156866), WebTransport (crbug.com/421216834) i WebRTC (crbug.com/421223919) z siecią lokalną nie są jeszcze ograniczone przez uprawnienia LNA.
  • Żądania sieci lokalnej z usług pracowników wymagają obecnie, aby usługa pracownika została wcześniej objęta uprawnieniem dostępu przez sieć lokalną.
    • Jeśli Twoja aplikacja wysyła żądania do sieci lokalnej z użyciem service workera, musisz obecnie osobno wywołać żądanie sieci lokalnej z aplikacji, aby wyświetlić prośbę o uprawnienia. (Pracujemy nad rozwiązaniem, które pozwoli pracownikom wywołać prośbę o uprawnienia, jeśli dostępny jest aktywny dokument. Więcej informacji znajdziesz na stronie crbug.com/404887282).

Chrome 139 i nowsze wersje

Chcemy jak najszybciej udostępnić Dostęp przez sieć lokalną. Zdajemy sobie sprawę, że niektóre witryny mogą potrzebować dodatkowego czasu na wprowadzenie adnotacji dotyczących dostępu przez sieć lokalną, dlatego dodamy opcję Origin Trial, która pozwoli witrynom tymczasowo zrezygnować z wymagania dotyczącego bezpiecznych kontekstów, zanim udostępnimy dostęp przez sieć lokalną domyślnie. Powinno to ułatwić programistom migrację, zwłaszcza jeśli polegają na dostępie do zasobów sieci lokalnej przez HTTP (te żądania byłyby blokowane jako treści mieszane, jeśli zostałyby przesłane z strony HTTPS w przeglądarkach, które nie obsługują jeszcze wyjątku dotyczącego treści mieszanych w przypadku dostępu do sieci lokalnej).

Dodamy też zasadę przedsiębiorstwa w Chrome, która będzie kontrolować, które strony mogą, a które nie mogą wysyłać żądań do sieci lokalnej (wcześniejsze przyznanie lub odmowa przyznania uprawnień tym stronom). Dzięki temu zarządzane instalacje Chrome, np. w ramach ustawień korporacyjnych, nie będą wyświetlać ostrzeżenia w przypadku znanych przypadków użycia lub będą jeszcze bardziej ograniczać dostęp do żądania uprawnień.

Planujemy dalszą integrację uprawnienia dostępu do sieci lokalnej z różnymi funkcjami, które mogą wysyłać żądania do sieci lokalnej. Wkrótce udostępnimy na przykład dostęp do lokalnej sieci dla połączeń WebSockets, WebTransport i WebRTC.

Więcej informacji podamy bliżej daty pełnego wprowadzenia funkcji Lokalny dostęp do sieci w Chrome.

Prośba o opinię

Wcześniejsze opinie na temat rozwoju funkcji dostępu z sieci prywatnej były niezwykle cenne i pozwoliły nam wprowadzić nowe podejście do uprawnień dostępu z sieci lokalnej. Jeszcze raz dziękujemy wszystkim, którzy przez lata byli zaangażowani w nasze działania.

Jeśli jesteś twórcą lub użytkownikiem witryny, która wymaga nawiązywania połączeń z lokalną siecią użytkownika lub oprogramowaniem działającym lokalnie na jego komputerze, zespół Chrome chętnie pozna Twoją opinię i przypadki użycia. Możesz pomóc na 2 sposoby: