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 a server su reti private. Ciò contribuisce a proteggere gli utenti e le reti interne da potenziali attacchi come la falsificazione di richieste tra siti (CSRF). Chrome ha implementato gradualmente PNA e la protezione verrà estesa nelle prossime release.

Protezioni PNA principali (con il relativo stato attuale)

  • Contesto sicuri: solo i contesti sicuri sono autorizzati a effettuare richieste di sottorisorse di rete privata (applicato a partire da Chrome 94). Per informazioni dettagliate, consulta il nostro post di aggiornamento relativo all'accesso alla rete privata.
  • Richieste preflight: Chrome invia richieste preflight prima delle richieste delle sottorisorse di rete privata per verificare le autorizzazioni del server (avvisi in DevTools relativi a errori dalla versione 104 di Chrome da applicare in Chrome 130). Questa procedura è stata descritta nella sezione Accesso alla rete privata: 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 della stessa origine: da Chrome 115, le richieste della stessa origine provenienti da origini potenzialmente affidabili sono esenti dalle limitazioni PNA.

Protezione estesa: web worker

La protezione PNA verrà estesa ai web worker (lavoratori dedicati, lavoratori condivisi e service worker). Include:

  • Recupero degli script worker: richiede contesti sicuri e preflight per gli indirizzi IP meno pubblici. Avvisi da Chrome 110 da applicare in Chrome 130.
  • Recupero avviato dagli script worker: tutti i recuperi dagli script worker seguono le stesse regole PNA.

A partire dalla versione 124 di Chrome, puoi testare l'applicazione forzata seguendo questi passaggi:

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

Protezione estesa: recuperi della navigazione

PNA si applica anche ai recuperi della navigazione (iframe, popup) dovuti al loro potenziale utilizzo in attacchi CSRF. Chrome 123 ha iniziato a mostrare avvisi per errori, con l'applicazione pianificata per Chrome 130.

A partire dalla versione 124 di Chrome, puoi testare l'applicazione forzata tramite:

  • 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 visualizzeranno un errore specifico con la possibilità di ricaricare manualmente e consentire la richiesta.

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

Cosa fare se il tuo sito web è interessato?

Il post Accesso alla rete privata: introduzione dei preflight include 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 provvisorio da Chrome 126, PNA coprirà gli handshake WebSocket (prima gli avvisi).
  • Applicazione completa: tutte le limitazioni PNA verranno applicate provvisoriamente in Chrome 130, ovvero bloccando le richieste non conformi. Gli utenti disporranno di un'impostazione del sito che sostituirà PNA per i siti attendibili.

Feedback per i casi d'uso di 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 a Chromium Issue Tracker (componente: Blink>SecurityFeature>CORS>PrivateNetworkAccess).

Foto di Jakub Шerdzicki su Unsplash