Questo documento fornisce consigli su come configurare il criterio di sicurezza del contenuto (CSP) per il sito web per l'API Maps JavaScript. Poiché gli utenti finali utilizzano un'ampia varietà di tipi e versioni di browser, gli sviluppatori sono invitati a utilizzare questo esempio come riferimento, ottimizzandolo fino a quando non si verificheranno ulteriori violazioni del CSP.
Scopri di più sui criteri di sicurezza del contenuto.
CSP rigoroso
Consigliamo di utilizzare l'approccio CSP rigoroso anziché quello incluso nella lista consentita per ridurre le probabilità di attacchi di sicurezza.
L'API Maps JavaScript supporta l'utilizzo di un CSP rigoroso non basato sucece.
I siti web devono completare entrambi gli elementi script
e style
con un valore nonce.
Internamente, l'API Maps JavaScript troverà il primo di questi elementi e applicherà il proprio valore nonce agli elementi di stile o script inseriti rispettivamente dallo script API.
Esempio
L'esempio riportato di seguito mostra un esempio di CSP, insieme a una pagina HTML in cui è incorporato:
Esempio di criterio di sicurezza dei contenuti
script-src 'nonce-{script value}' 'strict-dynamic' https: 'unsafe-eval' blob:;
img-src 'self' https://*.googleapis.com https://*.gstatic.com *.google.com *.googleusercontent.com data:;
frame-src *.google.com;
connect-src 'self' https://*.googleapis.com *.google.com https://*.gstatic.com data: blob:;
font-src https://fonts.gstatic.com;
style-src 'nonce-{style value}' https://fonts.googleapis.com;
worker-src blob:;
Esempio di pagina HTML
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="style.css" nonce="{style value}">
<style nonce="{style value}">...</style>
...
</head>
<body>
<div id="map"></div>
<script src="https://maps.googleapis.com/maps/api/js?key=&callback=initMap" async nonce="{script value}"></script>
<script nonce="{script value}"> function initMap() { ... } </script>
</body>
</html>
CSP lista consentita
Se hai configurato CSP nella lista consentita, consulta l'elenco dei domini di Google Maps. Consigliamo di consultare questo documento e le note di rilascio dell'API Maps JavaScript per rimanere aggiornati e, se necessario, di includere eventuali nuovi domini di servizio nella lista consentita.
Anche i siti web che caricano l'API Maps JavaScript da un dominio API di Google legacy (ad esempio maps.google.com
) o da un dominio specifico per regione (ad esempio maps.google.fr
) devono includere questi nomi di dominio nella relativa impostazione script-src
CSP, come mostrato nell'esempio seguente:
script-src 'self' 'unsafe-inline' 'unsafe-eval' https://*.googleapis.com https://*.gstatic.com *.google.com https://*.ggpht.com *.googleusercontent.com blob:;
img-src 'self' https://*.googleapis.com https://*.gstatic.com *.google.com *.googleusercontent.com data:;
frame-src *.google.com;
connect-src 'self' https://*.googleapis.com *.google.com https://*.gstatic.com data: blob:;
font-src https://fonts.gstatic.com;
style-src 'self' 'unsafe-inline' https://fonts.googleapis.com;
worker-src blob:;