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:
Tentukan daftar domain yang diizinkan yang dapat memasukkan resource-nya di halaman.
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
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.
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.