Ten dokument zawiera zalecenia dotyczące konfigurowania zasad bezpieczeństwa treści (CSP) witryny 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 odniesienia i dopracowywania go, aż do momentu, gdy nie będzie już żadnych naruszeń zasad CSP.
Więcej informacji o zasadach bezpieczeństwa treści
Ścisły CSP
Aby zmniejszyć ryzyko ataków, zalecamy stosowanie rygorystych zasad CSP zamiast listy dozwolonych zasad CSP.
Interfejs Maps JavaScript API obsługuje ścisłe zasady CSP oparte na nonce.
Strony internetowe muszą wypełnić 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 stylu lub skryptu wstawionych przez skrypt interfejsu API.
Przykład
Ten przykład pokazuje przykładowy CSP wraz ze stroną HTML, na której jest on umieszczony:
Przykładowa polityka 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>
Lista dozwolonych CSP
Jeśli masz skonfigurowaną listę dozwolonych dostawców usług, zapoznaj się z listą domen Map Google. Aby być na bieżąco, warto zapoznać się z tym dokumentem i informacjami o wersji interfejsu Maps JavaScript API. W razie potrzeby należy też dodać nowe domeny usług do listy dozwolonych.
Witryny, które wczytują interfejs Maps JavaScript API z starszej domeny interfejsów API Google (np. maps.google.com
) lub domeny dla konkretnego regionu (np. maps.google.fr
), muszą również uwzględniać te nazwy domen w ustawieniu CSP script-src
, jak 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:;