Accesso alla rete privata: protezione estesa per i web worker e il recupero della navigazione

Jonathan Hao
Jonathan Hao

Che cos'è l'accesso alla rete privata?

L'accesso alla rete privata (PNA, precedentemente noto come CORS-RFC1918 e brevemente Accesso alla rete locale) è una funzionalità di sicurezza che limita la capacità dei siti web di inviare richieste ai server su reti private. Ciò contribuisce a proteggere gli utenti e le reti interne da potenziali attacchi come la contraffazione di richieste tra siti (CSRF). Chrome ha implementato gradualmente la PNA e la protezione verrà estesa nelle release future.

Principali protezioni PNA (con il loro stato attuale)

  • Contesti sicuri: solo i contesti sicuri possono effettuare richieste di sottorisorse di rete privata (applicate a partire da Chrome 94). Per maggiori dettagli, consulta il nostro post di aggiornamento relativo all'accesso alla rete privata.
  • Richieste di preflight: Chrome invia richieste di preflight prima delle richieste di risorse secondarie della rete privata per verificare le autorizzazioni del server (avvisi in DevTools per gli errori a partire da Chrome 104, da applicare in Chrome 130). Questa procedura è descritta in Accesso privato alla rete: introduzione ai preflight. A partire da Chrome 123, Chrome ometterà alcune intestazioni CORS come Accept se il preflight viene creato e inviato solo a causa di PNA.
  • Esenzioni dalla stessa origine: da Chrome 115, le richieste della stessa origine provenienti da origini potenzialmente attendibili sono esenti dalle limitazioni PNA.

Protezione estesa: web worker

La protezione PNA verrà estesa ai web worker (lavoratori dedicati, worker condivisi e lavoratori dei servizi). tra cui:

  • Recupero degli script worker: richiede contesti sicuri e preflight per gli indirizzi IP meno pubblici. Avvisi a partire da Chrome 110, da applicare in Chrome 130.
  • Recuperi avviati da script worker: tutti i recuperi dall'interno degli script worker seguono le stesse regole PNA.

A partire da Chrome 124, puoi verificare l'applicazione della norma seguendo questi passaggi:

  • Disabilita chrome://flags/#private-network-access-ignore-worker-errors
  • Abilita chrome://flags/#private-network-access-respect-preflight-results

Protezione estesa: recupero dati di navigazione

Il PNA si applica anche ai recuperi tramite navigazione (iframe, popup) a causa del loro potenziale utilizzo in attacchi CSRF. Chrome 123 ha iniziato a mostrare avvisi per gli errori, con la relativa applicazione pianificata per Chrome 130.

A partire da Chrome 124, puoi testare l'applicazione forzata nei seguenti modi:

  • Disabilita chrome://flags/#private-network-access-ignore-navigation-errors
  • Abilita chrome://flags/#private-network-access-respect-preflight-results

Quando PNA blocca una richiesta di navigazione, gli utenti vedranno un errore specifico con la possibilità di ricaricare manualmente e consentire la richiesta.

Quando PNA blocca una richiesta di navigazione, gli utenti vedranno un errore specifico con la possibilità di ricaricare manualmente e consentire la richiesta.
Quando PNA blocca una richiesta di navigazione, gli utenti vedranno un errore specifico con la possibilità di ricaricare manualmente e consentire la richiesta.

Che cosa fare se il sito web è interessato?

Il post Private Network Access: introduzione dei preflight include delle indicazioni. È importante sottolineare che, per le richieste di navigazione:

  • Access-Control-Allow-Origin non può essere un carattere jolly ("*").
  • Access-Control-Allow-Credentials deve essere impostato su "true".

Passaggi successivi

  • WebSockets: a partire da Chrome 126, PNA coprirà gli handshake WebSocket (prima gli avvisi).
  • Applicazione completa: tutte le limitazioni relative ai PNA verranno applicate (bloccando le richieste non conformi) in via sperimentale in Chrome 130. Gli utenti avranno un'impostazione del sito per ignorare la PNA per i siti attendibili.

Feedback per i casi d'uso delle reti private

Se ospiti un sito web su una rete privata che richiede richieste da reti pubbliche, il team di Chrome vorrebbe ricevere il tuo feedback. Segnala un problema nell'Issue Tracker di Chromium (componente: Blink>SecurityFeature>CORS>PrivateNetworkAccess).

Foto di Jakub Żerdzicki su Unsplash