В этом документе представлены рекомендации по настройке политики безопасности контента (CSP) веб-сайта для JavaScript API карт. Поскольку конечные пользователи используют самые разные типы и версии браузеров, разработчикам рекомендуется использовать этот пример в качестве参考, дорабатывая его до тех пор, пока не перестанут возникать нарушения CSP.
Узнайте больше о политике безопасности контента .
Строгий CSP
Мы рекомендуем использовать строгую CSP вместо CSP с разрешенными списками, чтобы снизить вероятность атак на безопасность. API карт JavaScript поддерживает использование строгой CSP на основе nonce. Веб-сайты должны заполнять элементы script и style значением nonce. Внутри API карт JavaScript найдет первый такой элемент и применит его значение nonce к элементам style или script, вставленным скриптом API соответственно.
Пример
В следующем примере показан образец CSP, а также HTML-страница, в которую он встроен:
Пример политики безопасности контента
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:;
Пример 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
Если вы настроили CSP с добавлением разрешенных доменов, пожалуйста, ознакомьтесь со списком доменов Google Maps . Мы рекомендуем ознакомиться с этим документом и примечаниями к выпуску API JavaScript для карт, чтобы оставаться в курсе последних изменений и при необходимости добавлять в список разрешенных доменов любые новые сервисы.
Веб-сайты, загружающие JavaScript API карт с устаревшего домена Google API (например, maps.google.com ) или домена, привязанного к конкретному региону (например, maps.google.fr ), также должны включать эти доменные имена в свой параметр CSP script-src , как показано в следующем примере:
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:;