Przewodnik po zasadach bezpieczeństwa treści

Ten dokument zawiera zalecenia dotyczące konfiguracji witryny Content Security Policy (CSP) dla interfejsu Maps JavaScript API. Od użytkowników korzysta z wielu różnych typów i wersji przeglądarek, zachęcamy do korzystania z tego przykładu jako punktu odniesienia. Występują naruszenia zasad CSP.

Więcej informacji o Content Security Policy

Rygorystyczne zasady CSP

Zalecamy używanie rygorystycznego CSP. niż CSP na liście dozwolonych, aby zminimalizować ryzyko ataków. Maps JavaScript API obsługuje rygorystyczne zasady CSP bez wartości. Zarówno elementy script, jak i style witryny muszą zawierać wartość jednorazową. Wewnętrznie interfejs Maps JavaScript API znajdzie pierwszy taki element, i zastosuj jego wartość jednorazową do elementów stylu lub skryptu wstawionych przez interfejs API skrypt.

Przykład

Poniżej znajduje się przykładowy kod CSP wraz ze stroną HTML, na której jest umieszczone:

Przykładowa zasada zabezpieczeń treści

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>

CSP – lista dozwolonych

Jeśli masz skonfigurowane CSP na liście dozwolonych, sprawdź listę domen w Mapach Google. Zalecamy zapoznanie się z tym dokumentem oraz z interfejsem Maps JavaScript API informacjami o wersji, aby być na bieżąco; i w razie potrzeby dodaj do listy dozwolonych nową domenę usługi.

witryny, które wczytują interfejs Maps JavaScript API ze starszej wersji; Domena interfejsów API Google (na przykład maps.google.com) lub domena w danym regionie (np. maps.google.fr), musi również uwzględnić te nazwy domen w swoich 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:;