Prova dell'origine della richiesta di autorizzazione di accesso alla rete privata: un percorso per la migrazione dei siti web con HTTPS

Yifan Luo
Yifan Luo

Sfondo

Chrome 94 ha introdotto un blocco all'accesso alla rete privata da siti web pubblici non sicuri. La prova in corso relativa al ritiro dell'accesso privato alla rete da contesti non sicuri ha rivelato alcune difficoltà nella migrazione dei siti web interessati a HTTPS. Un problema comune è la difficoltà di eseguire la migrazione dei dispositivi privati a HTTPS, con conseguenti violazioni miste dei controlli dei contenuti.

Per risolvere il problema menzionato in precedenza, è disponibile una nuova richiesta di autorizzazione in una prova dell'origine di Chrome 120

Richiesta di autorizzazione come nuova opzione

Se aggiungi il nuovo attributo targetAddressSpace come opzione di recupero, la richiesta potrà saltare il controllo dei contenuti misti.

Esempio:

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

In conformità con la norma Accesso privato alla rete: introduzione dei preflight, ogni richiesta di rete privata sarà preceduta da una richiesta preflight. Questa richiesta preflight includerà una nuova intestazione, Access-Control-Request-Private-Network: true, e la risposta corrispondente deve includere l'intestazione Access-Control-Allow-Private-Network: true.

Per soddisfare la nuova richiesta di autorizzazione, abbiamo richiesto ai dispositivi di incorporare due nuove intestazioni di risposta: Private-Network-Access-Name e Private-Network-Access-ID.

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

Esempio:

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

Private-Network-Access-ID: un valore a 48 bit presentato come 6 byte esadecimali separati da due punti. Private-Network-Access-Name: un nome valido come stringa che corrisponde all'espressione regolare ECMAScript /^[a-z0-9_-.]+$/. La lunghezza massima del nome è di 248 unità di codice UTF-8.

Demo

Puoi guardare la demo all'indirizzo: https://private-network-access-permission-test.glitch.me/.

Registrati per una prova dell'origine

Per garantire che la richiesta di autorizzazione di Accesso alla rete privata aiuti gli sviluppatori ad adottare limitazioni di contesto sicure per l'accesso alla rete privata, le stiamo rendendo disponibili in Chrome dalla versione 120 alla versione 122 come prova dell'origine.

Registrati alla prova dell'origine per consentire al tuo sito web di utilizzare la richiesta di autorizzazione:

  1. Richiedi un token per la tua origine.
  2. Utilizza il token in uno dei seguenti modi:
    • Nel codice HTML: html <meta http-equiv="Origin-Trial" content="TOKEN_GOES_HERE">
    • Nel tuo codice JavaScript: js const meta = document.createElement('meta'); meta.httpEquiv = 'Origin-Trial'; meta.content = 'TOKEN_GOES_HERE'; document.head.append(meta);
    • Nelle intestazioni HTTP: text Origin-Trial: TOKEN_GOES_HERE

Per eventuali feedback o suggerimenti su questa funzionalità, segnala un problema nel repository GitHub.

Risorse