Neue Berechtigungsanfrage für den Zugriff auf das lokale Netzwerk

Chris Thompson
Chris Thompson

Veröffentlichung: 9. Juni 2025

In Chrome wird im Rahmen der Entwurfsspezifikation für den Zugriff auf lokale Netzwerke eine neue Berechtigungsanfrage für Websites hinzugefügt, die eine Verbindung zum lokalen Netzwerk eines Nutzers herstellen. Ziel ist es, Nutzer vor CSRF-Angriffen (Cross-Site Request Forgery) zu schützen, die auf Router und andere Geräte in privaten Netzwerken ausgerichtet sind, und die Möglichkeit von Websites zu verringern, mit diesen Anfragen den Fingerabdruck des lokalen Netzwerks des Nutzers zu erstellen.

Um zu verstehen, wie sich diese Änderung auf das Web-Ökosystem auswirkt, sucht das Chrome-Team nach Feedback von Entwicklern, die Webanwendungen erstellen, die Verbindungen zum lokalen Netzwerk eines Nutzers oder zu Software herstellen, die lokal auf dem Computer des Nutzers ausgeführt wird. Ab Chrome 138 können Sie diese neuen Einschränkungen aktivieren. Gehen Sie dazu zu chrome://flags/#local-network-access-check und setzen Sie das Flag auf „Aktiviert (Blockieren)“.

Was ist der Zugriff auf das lokale Netzwerk?

Mit der Option Zugriff über lokales Netzwerk wird eingeschränkt, inwieweit Websites Anfragen an Server im lokalen Netzwerk eines Nutzers senden können (einschließlich Server, die lokal auf dem Computer des Nutzers ausgeführt werden). Der Nutzer muss der Website die Berechtigung erteilen, bevor solche Anfragen gesendet werden können. Die Möglichkeit, diese Berechtigung anzufordern, ist auf sichere Kontexte beschränkt.

Ein Prompt mit dem Text „Nach Geräten in deinem lokalen Netzwerk suchen und eine Verbindung mit ihnen herstellen“
Beispiel für die Aufforderung von Chrome zum Zulassen des lokalen Netzwerkzugriffs

Viele andere Plattformen wie Android, iOS und MacOS haben eine Berechtigung für den lokalen Netzwerkzugriff. Möglicherweise haben Sie der Google Home App beispielsweise beim Einrichten neuer Google TV- und Chromecast-Geräte die Berechtigung zum Zugriff auf das lokale Netzwerk erteilt.

Welche Arten von Anfragen sind betroffen?

Für den ersten Meilenstein des lokalen Netzwerkzugriffs betrachten wir als „lokale Netzwerkanfrage“ jede Anfrage vom öffentlichen Netzwerk an ein lokales Netzwerk oder ein Loopback-Ziel.

Ein lokales Netzwerk ist jedes Ziel, das in IPv4 in den privaten Adressbereich aufgelöst wird, der in Abschnitt 3 von RFC1918 definiert ist (z.B. 192.168.0.0/16), eine IPv4-zugewiesene IPv6-Adresse, bei der die zugewiesene IPv4-Adresse selbst privat ist, oder eine IPv6-Adresse außerhalb der Subnetze ::1/128, 2000::/3 und ff00::/8.

Ein Loopback ist ein beliebiges Ziel, das in den Bereich „Loopback“ (127.0.0.0/8) aufgelöst wird, der in Abschnitt 3.2.1.3 von RFC1122 für IPv4 definiert ist, in den Bereich „Link-local“ (169.254.0.0/16) aufgelöst wird, der in RFC3927 für IPv4 definiert ist, in das Präfix „Unique Local Address“ (fcc00::/7) aufgelöst wird, das in Abschnitt 3 von RFC4193 für IPv6 definiert ist, oder in das Präfix „Link-local“ (fe80::/10) aufgelöst wird, das in Abschnitt 2.5.6 von RFC4291 für IPv6 definiert ist.

Ein öffentliches Netzwerk ist ein beliebiges anderes Ziel.

Da die Berechtigung für den Zugriff auf das lokale Netzwerk auf sichere Kontexte beschränkt ist und es schwierig sein kann, lokale Netzwerkgeräte zu HTTPS zu migrieren, werden die berechtigungsgeschützten lokalen Netzwerkanfragen jetzt von den Prüfungen auf gemischte Inhalte ausgenommen, wenn Chrome weiß, dass die Anfragen an das lokale Netzwerk gesendet werden, bevor das Ziel aufgelöst wird. Chrome erkennt, dass eine Anfrage an das lokale Netzwerk gesendet wird, wenn:

  • Der Hostname der Anfrage ist ein privates IP-Literal (z.B. 192.168.0.1).
  • Der Hostname der Anfrage ist eine .local-Domain.
  • Der fetch()-Aufruf ist mit der Option targetAddressSpace: "local". kommentiert.
// 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",
});

Änderungen in Chrome

Chrome 138

Die erste Version des lokalen Netzwerkzugriffs kann in Chrome 138 optional getestet werden. Nutzer können den neuen Berechtigungsprompt aktivieren, indem sie chrome://flags#local-network-access-check auf „Aktiviert (Blockieren)“ setzen. So wird die Aufforderung zur Einwilligung für den Zugriff auf das lokale Netzwerk für Anfragen ausgelöst, die über die JavaScript fetch() API, das Laden von Unterressourcen und die Navigation in Unterframes initiiert werden.

Unter https://local-network-access-testing.glitch.me/ ist eine Demo-Website verfügbar, mit der verschiedene Arten von lokalen Netzwerkanfragen ausgelöst werden können.

Bekannte Probleme und Beschränkungen

  • Die neue Berechtigungsanfrage ist derzeit nur in der Desktopversion von Chrome implementiert. Wir arbeiten bereits an der Portierung auf Android Chrome. (Verfolgt unter crbug.com/400455013.)
  • WebSocket- (crbug.com/421156866), WebTransport- (crbug.com/421216834) und WebRTC-Verbindungen (crbug.com/421223919) zum lokalen Netzwerk sind noch nicht an die LNA-Berechtigung gebunden.
  • Für lokale Netzwerkanfragen von Dienstmitarbeitern ist derzeit erforderlich, dass dem Ursprung des Dienstmitarbeiters zuvor die Berechtigung „Zugriff auf das lokale Netzwerk“ gewährt wurde.
    • Wenn Ihre Anwendung lokale Netzwerkanfragen von einem Dienstarbeiter sendet, müssen Sie derzeit separat eine lokale Netzwerkanfrage von Ihrer Anwendung auslösen, um die Berechtigungsanfrage auszulösen. Wir arbeiten daran, dass Nutzer die Berechtigungsanfrage auslösen können, wenn ein aktives Dokument verfügbar ist. Weitere Informationen finden Sie unter crbug.com/404887282.

Chrome 139 und höher

Wir möchten den Zugriff auf das lokale Netzwerk so bald wie möglich einführen. Da einige Websites möglicherweise zusätzliche Zeit für die Aktualisierung mit Anmerkungen zum Zugriff über lokales Netzwerk benötigen, fügen wir einen Test für den Ursprung hinzu, mit dem Websites die Anforderung für sichere Kontexte vorübergehend deaktivieren können, bevor der Zugriff über lokales Netzwerk standardmäßig eingeführt wird. Dies sollte Entwicklern einen klareren Migrationspfad bieten, insbesondere wenn Sie auf den Zugriff auf lokale Netzwerkressourcen über HTTP angewiesen sind. Diese Anfragen würden nämlich als gemischte Inhalte blockiert, wenn sie von einer HTTPS-Seite in Browsern angefordert werden, die die Ausnahme für gemischte Inhalte beim lokalen Netzwerkzugriff noch nicht unterstützen.

Außerdem fügen wir eine Chrome Enterprise-Richtlinie hinzu, mit der gesteuert werden kann, welche Websites lokale Netzwerkanfragen stellen dürfen und welche nicht. Dazu wird die Berechtigung für diese Websites vorab gewährt oder verweigert. So kann bei verwalteten Chrome-Installationen, z. B. in Unternehmensumgebungen, verhindert werden, dass die Warnung bei bekannten, beabsichtigten Anwendungsfällen angezeigt wird. Außerdem können Websites so weiter eingeschränkt und daran gehindert werden, die Berechtigung überhaupt anzufordern.

Wir planen, die Berechtigung „Zugriff auf das lokale Netzwerk“ weiter in verschiedene Funktionen zu integrieren, die Anfragen an das lokale Netzwerk senden können. So planen wir beispielsweise, demnächst den lokalen Netzwerkzugriff für WebSockets, WebTransport und WebRTC-Verbindungen einzuführen.

Weitere Informationen erhalten Sie, sobald der lokale Netzwerkzugriff in Chrome vollständig eingeführt wurde.

Feedback erwünscht

Das bisherige Feedback zur Entwicklung des privaten Netzwerkzugriffs war sehr wertvoll und hat uns zu unserem neuen Ansatz für die Berechtigung „Zugriff auf lokales Netzwerk“ geführt. Wir möchten uns noch einmal bei allen bedanken, die über die Jahre hinweg daran beteiligt waren.

Wenn Sie eine Website entwickeln oder nutzen, die Verbindungen zum lokalen Netzwerk des Nutzers oder zur Software herstellen muss, die lokal auf dem Computer des Nutzers ausgeführt wird, ist das Chrome-Team an Ihrem Feedback und Ihren Anwendungsfällen interessiert. Sie haben zwei Möglichkeiten, um zu helfen:

  • Rufen Sie chrome://flags#local-network-access-check auf, setzen Sie das Flag auf „Aktiviert (Blockieren)“ und prüfen Sie, ob Ihre Website die neue Berechtigungsanfrage korrekt auslöst und nach der Erteilung der Berechtigung wie erwartet funktioniert.
  • Wenn Probleme auftreten oder Sie Feedback haben, können Sie ein Problem im Chromium-Issue-Tracker oder in unserem GitHub-Repository für die LNA-Erläuterung melden. Wir würden uns sehr über Ihr Feedback zu Chrome freuen.