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

In Chrome 94 wurde der private Netzwerkzugriff von unsicheren öffentlichen Websites blockiert. Der laufende Test zur Einstellung des privaten Netzwerkzugriffs über unsichere Kontexte hat Herausforderungen bei der Migration betroffener Websites zu HTTPS aufgedeckt. Ein häufiges Problem ist die Migration privater Geräte zu HTTPS, die zu Verstößen bei der Prüfung von gemischten Inhalten führen.

Als Reaktion auf die zuvor erwähnte Herausforderung ist im Rahmen eines Ursprungstests von Chrome 120 eine neue Berechtigungsaufforderung verfügbar.

Berechtigungsaufforderung als neue Option

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

Beispiel:

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

Gemäß dem Abschnitt Privater Netzwerkzugriff: Einführung von Preflights geht jeder privaten Netzwerkanfrage eine Preflight-Anfrage voraus. Diese Preflight-Anfrage enthält den neuen Header Access-Control-Request-Private-Network: true. 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 enthalten: 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, dargestellt aus 6 Hexadezimalbyte, getrennt durch Doppelpunkte. 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-Codeeinheiten.

Demo

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

Für einen Ursprungstest registrieren

Damit die Aufforderung für den Zugriff auf private Netzwerke Entwickler dabei unterstützt, sichere Kontextbeschränkungen für den privaten Netzwerkzugriff festzulegen, stellen wir diese ab Version 120 bis 122 in Chrome als Ursprungstest zur Verfügung.

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

  1. Fordern Sie ein Token für Ihren Ursprung an.
  2. Verwenden Sie das Token auf eine der folgenden Arten:
    • Im HTML-Code: html <meta http-equiv="Origin-Trial" content="TOKEN_GOES_HERE">
    • Im JavaScript: 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 geben möchten, melden Sie ein Problem im GitHub-Repository.

Ressourcen