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 di ritiro dell'accesso alla rete privata da contesti non sicuri in corso ha rivelato difficoltà nella migrazione dei siti web interessati a HTTPS. Un problema comune è la difficoltà di eseguire la migrazione dei dispositivi privati a HTTPS, con conseguente violazione dei controlli dei contenuti misti.

Per risolvere il problema sopra indicato, in una prova dell'origine di Chrome 120 è disponibile una nuova richiesta di autorizzazione.

Richiesta di autorizzazione come nuova opzione

Aggiungendo 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 supportare 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 di 48 bit presentato come 6 byte esadecimali separati da due punti. Private-Network-Access-Name: un nome valido sotto forma di stringa che corrisponde all'espressione regolare ECMAScript /^[a-z0-9_-.]+$/. La lunghezza massima del nome è di 248 unità di codice UTF-8.

Demo

Puoi provare 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 del contesto sicuro per l'accesso alla rete privata, le stiamo rendendo disponibili in Chrome dalla versione 120 alla 122 come prova di origine.

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

  1. Richiedi un token per l'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 in merito a questa funzionalità, invia una segnalazione nel repository GitHub.

Risorse