Przewodnik po zasadach Content Security Policy

W tym dokumencie znajdziesz zalecenia dotyczące konfigurowania standardu Content Security Policy (CSP) w witrynie na potrzeby interfejsu Maps JavaScript API. Użytkownicy korzystają z wielu różnych typów i wersji przeglądarek, dlatego zachęcamy deweloperów do korzystania z tego przykładu jako punktu odniesienia i do jego dopracowywania, aż nie będą występować żadne naruszenia CSP.

Więcej informacji o standardzie Content Security Policy.

Tryb rygorystyczny CSP

Aby zmniejszyć ryzyko ataków na bezpieczeństwo, zalecamy stosowanie rygorystycznego standardu CSP zamiast standardu CSP opartego na liście dozwolonych. Interfejs Maps JavaScript API obsługuje używanie rygorystycznego standardu CSP opartego na wartości nonce. Witryny muszą wypełniać elementy script i style wartością nonce. Wewnętrznie interfejs Maps JavaScript API znajdzie pierwszy taki element i zastosuje jego wartość nonce do elementów style lub script wstawionych przez skrypt interfejsu API.

Przykład

Poniższy przykład przedstawia przykładowy standard CSP oraz stronę HTML, na której jest on osadzony:

Przykładowy standard 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:;

Przykładowa strona 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>

Standard CSP oparty na liście dozwolonych

Jeśli masz skonfigurowany standard CSP oparty na liście dozwolonych, zapoznaj się z listą domen Map Google. Aby być na bieżąco, zalecamy zapoznanie się z tym dokumentem i informacjami o wersji interfejsu Maps JavaScript API release notes oraz w razie potrzeby dodanie do listy dozwolonych nowej domeny usługi.

Witryny, które wczytują interfejs Maps JavaScript API z starszej domeny interfejsów API Google (np. maps.google.com) lub domeny regionalnej (np. maps.google.fr), muszą też uwzględnić te nazwy domen w ustawieniu script-src standardu CSP, jak pokazano w tym przykładzie:

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