Ursprungstest für die Aufforderung für den Zugriff auf die Berechtigung für den privaten Netzwerkzugriff: Ein Pfad zur Migration von Websites mit HTTPS

Yifan Luo
Yifan Luo

Hintergrund

Mit Chrome 94 wurde der private Netzwerkzugriff von nicht sicheren öffentlichen Websites blockiert. Die laufende Testphase zur Einstellung des Zugriffs auf private Netzwerke aus nicht sicheren Kontexten hat Herausforderungen bei der Migration betroffener Websites zu HTTPS aufgedeckt. Ein häufiges Problem ist die Schwierigkeit, private Geräte zu HTTPS zu migrieren, was zu Verstößen bei der Prüfung gemischter Inhalte führt.

Um die oben genannte Herausforderung zu beheben, ist in Chrome 120 im Rahmen eines Ursprungstests ein neuer Berechtigungsaufforderung verfügbar.

Berechtigungsaufforderung als neue Option

Wenn Sie das neue Attribut targetAddressSpace als Abrufoption hinzufügen, kann die Anfrage die Prüfung der gemischten Inhalte überspringen.

Beispiel:

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

Gemäß dem Artikel Zugriff auf private Netzwerke: Einführung von Preflights geht jeder Anfrage an ein privates Netzwerk eine Preflight-Anfrage voraus. Diese Preflight-Anfrage enthält einen neuen Header, Access-Control-Request-Private-Network: true, und die entsprechende Antwort muss den Header Access-Control-Allow-Private-Network: true enthalten.

Um der neuen Berechtigungsaufforderung gerecht zu werden, mussten die Geräte zwei neue Antwortheader einbinden: Private-Network-Access-Name und Private-Network-Access-ID.

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

Beispiel:

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

Private-Network-Access-ID: Ein 48-Bit-Wert, der als sechs Hexadezimalbyte dargestellt wird, die durch Doppelpunkte getrennt sind. Private-Network-Access-Name: Ein gültiger Name als String, der mit dem regulären ECMAScript-Ausdruck /^[a-z0-9_-.]+$/ übereinstimmt. Die maximale Länge des Namens beträgt 248 UTF-8-Code-Einheiten.

Demo

Sie können sich die Demo unter https://private-network-access-permission-test.glitch.me/ ansehen.

Für Ursprungstest registrieren

Damit Entwickler mit einer Berechtigungsaufforderung für den Zugriff auf private Netzwerke sichere Kontexteinschränkungen für den privaten Netzwerkzugriff einführen können, stellen wir sie in Chrome von Version 120 bis 122 als Ursprungstest zur Verfügung.

Registrieren Sie sich für den Ursprungstest, damit Ihre Website den Berechtigungsprompt verwenden kann:

  1. Fordere ein Token für deinen Ursprung an.
  2. Sie haben folgende Möglichkeiten, das Token zu verwenden:
    • In Ihrem HTML-Code: html <meta http-equiv="Origin-Trial" content="TOKEN_GOES_HERE">
    • In Ihrem JavaScript-Code: js const meta = document.createElement('meta'); meta.httpEquiv = 'Origin-Trial'; meta.content = 'TOKEN_GOES_HERE'; document.head.append(meta);
    • In den HTTP-Headern: text Origin-Trial: TOKEN_GOES_HERE

Wenn Sie Feedback oder Vorschläge zu dieser Funktion haben, reichen Sie bitte ein Problem im GitHub-Repository ein.

Ressourcen