Guida ai criteri di sicurezza del contenuto

Questo documento fornisce consigli su come configurare la Content Security Policy (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 finché non si verificano ulteriori violazioni della CSP.

Scopri di più sulla Content Security Policy.

CSP rigoroso

Ti consigliamo di utilizzare CSP rigida anziché CSP con lista consentita per ridurre la possibilità di attacchi alla sicurezza. L'API Maps JavaScript supporta l'utilizzo di CSP rigide basate su nonce. I siti web devono compilare gli elementi script e style con un valore nonce. Internamente, l'API Maps JavaScript troverà il primo elemento di questo tipo e applicherà il suo valore nonce agli elementi di stile o script inseriti dallo script dell'API rispettivamente.

Esempio

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

Esempio di Content Security Policy

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 della lista consentita

Se hai configurato CSP della 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 rimanere aggiornato e includere qualsiasi nuovo dominio di servizio nella lista consentita, se necessario.

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 anche questi nomi di dominio nell'impostazione CSP script-src, come mostrato nel seguente esempio:

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