İçerik Güvenliği Politikası ile Entegrasyon

İçerik Güvenliği Politikası (CSP), hangi kaynakların ve komut dosyalarının yüklenmesine ve çalıştırılmasına izin verildiğini sınırlandırarak web sayfanızın güvenliğini sağlamanın bir yoludur. Web sunucunuzdan HTTP yanıtlarına Content-Security-Policy başlığı ayarlayarak CSP'yi etkinleştirebilirsiniz.

CSP'yi yapılandırmanın iki standart yolu vardır:

  1. Sayfadaki kaynaklarını ekleyebilecek alanların izin verilenler listesini belirtin.

  2. Sayfadaki kaynakların yüklenmesi için işaretlenmesi gereken rastgele bir tek seferlik sayı belirtin. Bu yaklaşıma katı CSP denir.

Google Yayıncı Etiketi'nin (GPT) kullandığı alan adları zaman içinde değiştiği için yalnızca katı CSP'yi (2. seçenek) destekliyoruz. Bu yaklaşım, güncelliğini yitirebilecek ve sitenizi bozabilecek periyodik alan adlarının listesini sürdürme ihtiyacını ortadan kaldırır.

GPT ile CSP kurulumu

  1. Web sunucunuzda CSP'yi etkinleştirin.

    CSP başlığını ayarlamak için katı CSP benimseme konusunda açıklanan adımları uygulayın ve gpt.js dahil olmak üzere sayfadaki her komut dosyası etiketine tek seferlik uygulayın. GPT özellikle aşağıdaki CSP yönergelerini destekler:

    Content-Security-Policy:
      object-src 'none';
      script-src 'nonce-{random}' 'unsafe-inline' 'unsafe-eval' 'strict-dynamic' https: http:;
      base-uri 'none';
      report-uri https://your-report-collector.example.com/
    

    Kullanım alanınıza uygunsa daha geniş kapsamlı bir politika seçebilirsiniz. Daha kısıtlayıcı politikalar bildirilmeden bozulabilir.

  2. Web alanları arası oluşturmayı etkinleştirin.

    Reklam iframe'leri, CSP tarafından izin verilmeyen harici kaynakları yükleyebilir. Aynı alan iframe'leri üst düzey pencerenin CSP'sini devraldığından ve GPT reklam öğesinin içeriğini kontrol edemediğinden genellikle aynı alan reklam öğeleri CSP başlıklarıyla düzgün çalışmaz.

    Tüm reklam öğelerinde web alanları arası oluşturma özelliğini etkinleştirmek için herhangi bir reklam alanı yüklemeden önce googletag.pubads().setForceSafeFrame(true) yürütün.

    <!doctype html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Hello GPT</title>
        <script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js" nonce="KC7tcz53FHqumKP1"></script>
        <script nonce="KC7tcz53FHqumKP1">
          window.googletag = window.googletag || {cmd: []};
          googletag.cmd.push(function() {
            googletag.pubads().setForceSafeFrame(true);
          });
        </script>
      </head>
    

Test

İlk olarak Content-Security-Policy yerine Content-Security-Policy-Report-Only üst bilgisini ayarlayarak politikalarınızı test etmenizi öneririz. Başlıkta ihlaller olduğu belirtilse de sayfada izin verilmeye devam edilir.