Mengintegrasikan dengan Kebijakan Keamanan Konten

Kebijakan Keamanan Konten (CSP) adalah cara untuk mengamankan halaman web Anda dengan membatasi resource dan skrip yang diizinkan untuk dimuat dan dieksekusi. Anda dapat mengaktifkan CSP dengan menyetel header Content-Security-Policy dalam respons HTTP dari server web Anda.

Ada dua cara standar untuk mengonfigurasi CSP:

  1. Tentukan daftar domain yang diizinkan yang dapat memasukkan resource-nya di halaman tersebut.

  2. Tentukan nonce acak, dengan resource di halaman yang harus ditandai untuk dimuat. Pendekatan ini dikenal sebagai CSP ketat.

Karena domain yang digunakan Tag Google Publisher (GPT) berubah dari waktu ke waktu, kami hanya mendukung CSP ketat (opsi 2). Pendekatan ini menghilangkan kebutuhan untuk mempertahankan daftar domain yang bergulir yang mungkin sudah tidak berlaku dan merusak situs Anda.

Menyiapkan CSP dengan GPT

  1. Aktifkan CSP di server web Anda.

    Ikuti langkah-langkah yang diuraikan dalam menggunakan CSP ketat untuk menyiapkan header CSP dan menerapkan nonce ke setiap tag skrip di halaman Anda, termasuk gpt.js. GPT secara khusus mendukung perintah CSP berikut:

    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/
    

    Anda dapat memilih kebijakan yang lebih longgar jika sesuai dengan kasus penggunaan Anda. Kebijakan yang lebih ketat dapat dilanggar tanpa pemberitahuan.

  2. Mengaktifkan rendering lintas-domain.

    iframe iklan dapat memuat resource eksternal yang mungkin tidak diizinkan oleh CSP. Karena iframe domain yang sama mewarisi CSP jendela tingkat atas, dan GPT tidak dapat mengontrol konten materi iklan, materi iklan domain yang sama biasanya tidak akan berfungsi dengan baik di header CSP.

    Guna mengaktifkan rendering lintas-domain untuk semua materi iklan, jalankan googletag.pubads().setForceSafeFrame(true) sebelum memuat slot iklan apa pun.

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

Pengujian

Sebaiknya uji kebijakan Anda terlebih dahulu dengan menetapkan header Content-Security-Policy-Report-Only, bukan Content-Security-Policy. Header melaporkan pelanggaran, tetapi masih mengizinkannya di halaman.