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 à un réseau privé ?

L'accès au réseau privé (PNA, anciennement CORS-RFC1918 et brièvement "Local Network Access") 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, Cross-Site Request Forgery). 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 requêtes de sous-ressources de réseau privé (mis en œuvre à partir de Chrome 94). Pour en savoir plus, consultez notre post de mise à jour sur l'accès au réseau privé.
  • Requêtes préliminaires: Chrome envoie des requêtes préliminaires avant les requêtes de sous-ressources de réseau privé pour vérifier les autorisations du serveur (avertissements dans DevTools en cas d'échec 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 de même origine: depuis Chrome 115, les requêtes de même origine provenant d'origines potentiellement fiables sont exemptées des restrictions PNA.

Protection étendue: Web workers

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

  • Récupération des scripts de nœuds de calcul: 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érés lancés par des scripts de nœud de calcul: toutes les récupérations à partir de scripts de nœud 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: récupérations de navigation

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 restrictions en procédant comme suit:

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

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 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 l'accès au réseau privé 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.

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 des 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 souhaite connaître votre avis. Envoyez un problème dans l'outil de suivi des problèmes Chromium (composant: Blink>SecurityFeature>CORS>PrivateNetworkAccess).

Photo par Jakub Żerdzicki sur Unsplash