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