İçerik Güvenliği Politikası Rehberi

Bu dokümanda, Maps JavaScript API için web sitesi İçerik Güvenliği Politikası'nın (CSP) nasıl yapılandırılacağı ile ilgili öneriler sunulmaktadır. Son kullanıcılar tarafından çok çeşitli tarayıcı türleri ve sürümleri kullanıldığından, geliştiricilerin bu örneği referans olarak kullanmaları ve başka CSP ihlali gerçekleşmeyecek şekilde ince ayar yapmaları önerilir.

İçerik Güvenliği Politikası hakkında daha fazla bilgi edinin.

Katı CSP

Güvenlik saldırısı olasılığını azaltmak için izin verilenler listesindeki CSP'nin yerine katı CSP kullanmanızı öneririz. Maps JavaScript API, ce'ye dayalı olmayan katı CSP kullanımını destekler. Web siteleri hem script hem de style öğelerini tek seferlik bir değerle doldurmalıdır. Dahili olarak Maps JavaScript API, bu tür ilk öğeyi bulur ve tek seferlik değerini sırasıyla API komut dosyası tarafından eklenen stil veya komut dosyası öğelerine uygular.

Örnek

Aşağıdaki örnekte, yerleştirilmiş bir HTML sayfası ile birlikte örnek bir CSP gösterilmektedir:

Örnek İçerik Güvenlik Politikası

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

Örnek HTML sayfası

<!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>

İGP'yi izin verilenler listesine ekleyin

İzin verilenler listesi CSP oluşturduysanız lütfen Google Haritalar Alanları listesine bakın. Güncel bilgileri almak için bu dokümana ve Maps JavaScript API sürüm notlarına bakmanızı, gerekirse yeni hizmet alan adlarını izin verilenler listesine eklemenizi öneririz.

Maps JavaScript API'yi eski bir Google API'leri alan adından (örneğin, maps.google.com) veya bölgeye özgü bir alan adından (örneğin, maps.google.fr) yükleyen web siteleri de bu alan adlarını CSP script-src ayarlarına aşağıdaki örnekte gösterildiği gibi dahil etmelidir:

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