Content Security Policy-Leitfaden

Dieses Dokument enthält Empfehlungen zur Konfiguration der Content Security Policy (CSP) der Website für die Maps JavaScript API. Da Endnutzer viele verschiedene Browsertypen und ‑versionen verwenden, sollten Entwickler dieses Beispiel als Referenz verwenden und Anpassungen vornehmen, bis keine Verstöße gegen die CSP mehr vorliegen.

Weitere Informationen zur Content Security Policy

Strikte CSP

Anstelle einer CSP mit Zulassungsliste sollten Sie eine strikte CSP verwenden, um die Gefahr von Sicherheitsbedrohungen zu minimieren. Die Maps JavaScript API unterstützt die Verwendung einer strikten CSP, die auf Nonce-Werten beruht. Sowohl für das script- als auch das style-Element einer Website muss ein Nonce-Wert angegeben werden. Die Maps JavaScript API sucht intern nach dem ersten solchen Element und wendet seinen Nonce-Wert auf Stil- oder Skriptelemente an, die vom API-Skript eingefügt wurden.

Beispiel

Das folgende Beispiel zeigt eine Beispiel-CSP sowie eine HTML-Seite, in die die CSP eingebettet ist:

Beispiel-CSP

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

Beispiel-HTML-Seite

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

Wenn Sie eine CSP mit Zulassungsliste eingerichtet haben, verwenden Sie bitte die Liste der Google Maps-Domains. Sie sollten diese Liste und die Versionshinweise für die Maps JavaScript API regelmäßig prüfen, um auf dem neuesten Stand zu bleiben, und die Domains neuer Dienste bei Bedarf in die Zulassungsliste aufnehmen.

Auch für Websites, die die Maps JavaScript API über eine alte Google APIs-Domain (z. B. maps.google.com) oder eine regionsspezifische Domain (z. B. maps.google.fr) laden, müssen diese Domainnamen in die Einstellung script-src der CSP aufgenommen werden, wie im folgenden Beispiel gezeigt:

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