Guida alle norme sulla sicurezza dei contenuti

Questo documento fornisce suggerimenti su come configurare il criterio di sicurezza del contenuto (CSP) del sito web per l'API Maps JavaScript. Poiché gli utenti finali utilizzano un'ampia gamma di tipi e versioni di browser, gli sviluppatori sono invitati a utilizzare questo esempio come riferimento, perfezionandolo fino a quando non si verificano ulteriori violazioni dei CSP.

Scopri di più sui Criteri di sicurezza del contenuto.

CSP rigoroso

Consigliamo di utilizzare CSP rigoroso nella lista consentita per ridurre la possibilità di attacchi alla sicurezza. L'API Maps JavaScript supporta l'utilizzo di CSP rigoroso nonce-based. I siti web devono compilare entrambi gli elementi script e style con un valore nonce. Internamente, l'API Maps JavaScript troverà il primo elemento di questo tipo e applicherà il proprio valore nonce agli elementi di stile o script inseriti rispettivamente dallo script API.

Esempio

L'esempio seguente mostra un CSP di esempio, insieme a una pagina HTML in cui è incorporato:

Criterio di sicurezza del contenuto di esempio

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:;

Pagina HTML di esempio

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

Lista consentita di CSP

Se hai configurato CSP nella lista consentita, consulta l'elenco dei domini di Google Maps. Ti consigliamo di consultare questo documento e le note di rilascio dell'API Maps JavaScript per essere sempre al corrente e includere eventuali nuovi domini di servizio nella lista consentita, se necessario.

I siti web che caricano l'API Maps JavaScript da un dominio legacy API di Google (ad esempio maps.google.com) o da un dominio specifico per regione (ad esempio maps.google.fr) devono includere anche questi nomi di dominio nell'impostazione CSP script-src, 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:;