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.
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