Accès au réseau privé: protection étendue pour les workers et les récupérations de données de navigation

Jonathan Hao
Jonathan Hao

Qu'est-ce que l'accès au réseau privé ?

L'accès au réseau privé (PNA, anciennement CORS-RFC1918 et brièvement "accès au réseau local") est une fonctionnalité de sécurité qui limite la capacité des sites Web à envoyer des requêtes aux serveurs sur des réseaux privés. Cela permet de protéger les utilisateurs et les réseaux internes contre les attaques potentielles telles que la falsification de requêtes intersites (CSRF). Chrome a progressivement implémenté la PNA, et la protection sera étendue dans les prochaines versions.

Principales protections de la PNA (avec leur état actuel)

  • Contextes sécurisés: seuls les contextes sécurisés sont autorisés à envoyer des demandes de sous-ressources de réseau privé (appliquées à partir de Chrome 94). Pour en savoir plus, consultez notre article Mise à jour concernant l'accès au réseau privé.
  • Requêtes préliminaires: Chrome envoie des requêtes préliminaires avant les demandes de sous-ressources du réseau privé pour vérifier les autorisations de serveur (avertissements dans les outils de développement en cas d'échecs depuis Chrome 104, à appliquer dans Chrome 130). Cela a été décrit dans Accès au réseau privé : présentation des requêtes préliminaires. Depuis Chrome 123, Chrome omet certains en-têtes CORS tels que Accept si la prévalidation n'est créée et envoyée que pour PNA.
  • Exceptions d'origine identique: depuis Chrome 115, les demandes d'origine identique provenant d'origines potentiellement fiables sont exemptées des restrictions liées à la fonctionnalité PNA.

Protection étendue : Web workers

La protection PNA s'étendra aux nœuds de calcul Web (dédiés, partagés et service workers). Par exemple :

  • Récupération des scripts de nœud de travail : nécessite des contextes sécurisés et des préflights pour les adresses IP moins publiques. Avertissements depuis Chrome 110, à appliquer dans Chrome 130.
  • Récupérations lancées par des scripts de nœud de calcul: toutes les extractions à partir de scripts de nœuds de calcul suivent les mêmes règles PNA.

À partir de Chrome 124, vous pouvez tester l'application de cette règle en procédant comme suit :

  • Désactiver chrome://flags/#private-network-access-ignore-worker-errors
  • Activer chrome://flags/#private-network-access-respect-preflight-results

Protection étendue: la navigation récupère

La PNA s'applique également aux récupérations de navigation (iFrames, pop-ups) en raison de leur utilisation potentielle dans les attaques CSRF. Chrome 123 a commencé à afficher des avertissements en cas d'échec, et l'application de cette règle est prévue pour Chrome 130.

À partir de Chrome 124, vous pouvez tester l'application des règles en:

  • Désactiver chrome://flags/#private-network-access-ignore-navigation-errors
  • Activer chrome://flags/#private-network-access-respect-preflight-results

Lorsque PNA bloque une requête de navigation, les utilisateurs voient une erreur spécifique avec la possibilité d'actualiser manuellement et d'autoriser la requête.

Lorsque le PNA bloque une requête de navigation, les utilisateurs voient une erreur spécifique avec la possibilité de recharger manuellement la page et d'autoriser la requête.
Lorsque PNA bloque une requête de navigation, les utilisateurs voient une erreur spécifique avec la possibilité d'actualiser manuellement et d'autoriser la requête.

Que faire si votre site Web est concerné ?

Pour en savoir plus, consultez l'article Accès à un réseau privé : présentation des requêtes préliminaires. À noter :

  • Access-Control-Allow-Origin ne peut pas être un caractère générique ("*").
  • Access-Control-Allow-Credentials doit être défini sur "true".

Étape suivante

  • WebSockets : à partir de Chrome 126, la PNA couvrira les handshakes WebSocket (avertissements en premier).
  • Application complète : toutes les restrictions PNA seront appliquées (blocage des requêtes non conformes) de manière provisoire dans Chrome 130. Les utilisateurs disposeront d'un paramètre de site pour remplacer la PNA pour les sites approuvés.

Commentaires sur les cas d'utilisation de réseaux privés

Si vous hébergez un site Web sur un réseau privé qui nécessite des requêtes provenant de réseaux publics, l'équipe Chrome aimerait connaître votre avis. Signalez un problème sur la page Chromium Issue Tracker (composant: Blink>SecurityFeature>CORS>PrivateNetworkAccess).

Photo de Jakub sucherdzicki sur Unsplash