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 varietà di tipi e versioni di browser, si consiglia agli sviluppatori di utilizzare questo esempio come riferimento, perfezionandolo fino a quando non si verificano ulteriori violazioni del CSP.

Scopri di più sui criteri di sicurezza del contenuto.

CSP rigoroso

Ti consigliamo di utilizzare un CSP molto rigoroso rispetto a quello nella lista consentita per ridurre la possibilità di attacchi alla sicurezza. L'API Maps JavaScript supporta l'utilizzo di CSP restrittivo basato nonce. I siti web devono completare 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 dell'API.

Esempio

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

Esempio di criterio di sicurezza del contenuto

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>

CSP nella lista consentita

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

Anche i siti web che caricano l'API Maps JavaScript da un dominio delle API di Google legacy (ad esempio maps.google.com) o di una regione specifica (ad esempio maps.google.fr) devono includere questi nomi di dominio nell'impostazione script-src del 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:;