İçerik Güvenliği Politikası Kılavuzu

Bu belgede, Maps JavaScript API için web sitesi içerik güvenlik politikasının (CSP) nasıl yapılandırılacağıyla 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 oluşmayana kadar ince ayar yapmaları önerilir.

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

Katı İGP

Güvenlik saldırısı olasılığını azaltmak için izin verilenler listesi CSP'si yerine katı CSP kullanmanızı öneririz. Maps JavaScript API, nonce tabanlı katı İGP kullanımını destekler. Web siteleri hem script hem de style öğelerini bir nonce değeriyle doldurmalıdır. Maps JavaScript API, dahili olarak bu türdeki ilk öğeyi bulur ve sırasıyla API komut dosyası tarafından eklenen stil veya komut dosyası öğelerine nonce değerini uygular.

Örnek

Aşağıdaki örnekte, yerleştirildiği 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>

İzin verilenler listesine CSP ekleme

İzin verilenler listesi CSP'sini ayarladıysanız lütfen Google Haritalar alanlarının listesine bakın. En son gelişmeleri kaçırmamak için bu belgeye ve Maps JavaScript API sürüm notlarına göz atmanızı, gerekirse yeni hizmet alanlarını izin verilenler listesine eklemenizi öneririz.

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

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