İçerik Güvenliği Politikası Rehberi

Bu belgede, Maps JavaScript API için web sitesi İçerik Güvenliği Politikası'nın (CSP) nasıl yapılandırılacağına dair ö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 başka İGP ihlali gerçekleşmeden ince ayar yapmak için bu örneği referans olarak kullanmaları ö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'ler üzerinde katı CSP kullanmanızı öneririz. Maps JavaScript API, tek seferlik anahtara dayalı katı CSP'nin kullanımını destekler. Web siteleri hem script hem de style öğelerini bir tek seferlik rastgele sayı değeriyle doldurmalıdır. Maps JavaScript API dahili olarak bu tür ilk öğeyi bulur ve tek seferlik rastgele 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ıyla birlikte örnek bir CSP gösterilmektedir:

Örnek İçerik Güvenliği 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>

CSP'yi izin verilenler listesine ekleme

İzin verilenler listesi CSP'yi ayarladıysanız lütfen Google Haritalar alanlarının listesine bakın. Güncel bilgileri almak için bu dokümana ve Maps JavaScript API sürüm notlarına bakmanızı ve 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, aşağıdaki örnekte gösterildiği gibi, İGP script-src ayarlarında bu alan adlarını içermelidir:

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