Mengintegrasikan dengan Kebijakan Keamanan Konten

Kebijakan Keamanan Konten (CSP) adalah cara mengamankan laman web Anda dengan membatasi sumber daya dan skrip apa saja yang diperbolehkan untuk dimuat dan mengeksekusi. Anda dapat mengaktifkan CSP dengan menyetel header Content-Security-Policy di 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.

  2. Tentukan nonce acak, yang akan diberi tanda pada aset pada halaman mana untuk memuatnya. Pendekatan ini dikenal sebagai CSP ketat.

Karena domain yang digunakan Tag Google Publisher (GPT) berubah kami hanya mendukung CSP ketat (opsi 2). Pendekatan ini menghilangkan keharusan memelihara daftar domain yang mungkin kedaluwarsa dan merusak situs Anda.

Menyiapkan CSP dengan GPT

  1. Aktifkan CSP di server web Anda.

    Ikuti langkah-langkah yang diuraikan dalam mengadopsi CSP ketat untuk siapkan header CSP dan terapkan nonce ke setiap tag skrip di halaman Anda, termasuk gpt.js. GPT secara khusus mendukung Perintah CSP:

    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 permisif jika sesuai dengan kasus penggunaan Anda. Selengkapnya kebijakan yang ketat dapat melanggar tanpa pemberitahuan.

  2. Aktifkan rendering lintas-domain.

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

    Untuk 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 src="https://securepubads.g.doubleclick.net/tag/js/gpt.js" nonce="KC7tcz53FHqumKP1" async></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 atribut Header Content-Security-Policy-Report-Only, bukan Content-Security-Policy. {i>Header<i} melaporkan pelanggaran tetapi masih mengizinkan mereka di laman tersebut.