Wat is particuliere netwerktoegang?
Private Network Access (PNA, voorheen bekend als CORS-RFC1918 en kortweg Local Network Access) is een beveiligingsfunctie die de mogelijkheid van websites beperkt om verzoeken naar servers op particuliere netwerken te sturen. Dit helpt gebruikers en interne netwerken te beschermen tegen mogelijke aanvallen zoals Cross-Site Request Forgery (CSRF). Chrome heeft PNA geleidelijk geïmplementeerd en de bescherming zal in komende releases worden uitgebreid.
Belangrijkste PNA-beveiligingen (met hun huidige status)
- Veilige contexten : alleen beveiligde contexten mogen subresourceverzoeken voor privénetwerken indienen (afgedwongen vanaf Chrome 94). Raadpleeg ons updatebericht over Private Network Access voor meer informatie.
- Preflightverzoeken : Chrome verzendt preflightverzoeken vóór verzoeken om subresources van particuliere netwerken om te controleren op serverrechten (waarschuwingen in DevTools voor fouten sinds Chrome 104, worden afgedwongen in Chrome 130). Dit werd beschreven in Private Network Access: Introductie van preflights . Sinds Chrome 123 zal Chrome enkele CORS-headers weglaten, zoals
Accept
als de preflight alleen wordt gemaakt en verzonden vanwege PNA. - Vrijstellingen van dezelfde oorsprong : Sinds Chrome 115 zijn verzoeken van dezelfde oorsprong van potentieel betrouwbare oorsprong vrijgesteld van PNA-beperkingen.
Uitgebreide bescherming: webwerkers
PNA-bescherming zal zich uitstrekken tot webwerkers (toegewijde werkers, gedeelde werkers en servicewerkers). Dit omvat:
- Werkerscripts ophalen : vereist veilige contexten en preflights voor minder openbare IP-adressen. Waarschuwingen sinds Chrome 110, af te dwingen in Chrome 130.
- Ophaalacties geïnitieerd door worker-scripts : Alle ophaalacties vanuit worker-scripts volgen dezelfde PNA-regels.
Vanaf Chrome 124 kunt u de handhaving testen met behulp van de volgende stappen:
- Schakel
chrome://flags/#private-network-access-ignore-worker-errors
uit - Schakel
chrome://flags/#private-network-access-respect-preflight-results
Uitgebreide bescherming: navigatie wordt opgehaald
PNA is ook van toepassing op navigatie-ophaalacties (iframes, pop-ups) vanwege hun potentiële gebruik bij CSRF-aanvallen. Chrome 123 begon waarschuwingen voor fouten weer te geven, terwijl handhaving gepland was voor Chrome 130.
Vanaf Chrome 124 kunt u de handhaving testen door:
- Schakel
chrome://flags/#private-network-access-ignore-navigation-errors
uit - Schakel
chrome://flags/#private-network-access-respect-preflight-results
Wanneer PNA een navigatieverzoek blokkeert, zien gebruikers een specifieke fout met de optie om het verzoek handmatig opnieuw te laden en toe te staan.
Wat moet u doen als uw website getroffen is?
Het bericht Private Network Access: introductie van preflights bevat richtlijnen. Belangrijk voor navigatieverzoeken:
-
Access-Control-Allow-Origin
mag geen jokerteken zijn ("*"
). -
Access-Control-Allow-Credentials
moet zijn ingesteld op"true"
.
Wat is het volgende?
- WebSockets : voorlopig vanaf Chrome 126 omvat PNA WebSocket-handshakes (eerst waarschuwingen).
- Volledige handhaving : alle PNA-beperkingen worden voorlopig afgedwongen (niet-conforme verzoeken worden geblokkeerd) in Chrome 130. Gebruikers hebben een site-instelling om PNA voor vertrouwde sites te overschrijven.
Feedback voor gebruiksscenario's voor privénetwerken
Als u een website host op een particulier netwerk waarvoor verzoeken van openbare netwerken nodig zijn, wil het Chrome-team uw feedback! Dien een probleem in bij Chromium Issue Tracker (onderdeel: Blink>SecurityFeature>CORS>PrivateNetworkAccess).
Foto door Jakub Żerdzicki op Unsplash