Artikel ini menjelaskan Kebijakan Keamanan Konten (CSP) dan cara mengintegrasikannya dengan kode iklan AdSense Anda. Perhatikan bahwa penayang tidak diwajibkan menggunakan CSP. Jika Anda ingin menggunakan CSP, ikuti langkah-langkah di bawah ini untuk memastikan kode AdSense Anda berfungsi dengan benar saat Anda mengaktifkan CSP.
Arti CSP
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 menetapkan header Content-Security-Policy
dalam 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 untuk menandai resource di halaman agar dapat dimuat. Pendekatan ini dikenal sebagai CSP ketat.
Karena domain yang digunakan kode iklan AdSense berubah dari waktu ke waktu, kami hanya mendukung CSP ketat (opsi 2). Dengan pendekatan ini, Anda tidak perlu lagi mengelola daftar domain yang perlu terus diperbarui dan mungkin menjadi tidak aktual lagi sehingga akan mengganggu fungsi situs Anda.
Menyiapkan CSP ketat dengan kode iklan AdSense
Untuk mengaktifkan CSP di server web Anda, ikuti langkah-langkah yang diuraikan dalam artikel Menggunakan CSP yang ketat yang menjelaskan cara menyiapkan header CSP dan menerapkan nonce ke setiap tag skrip di halaman Anda, termasuk kode AdSense. Kode AdSense 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 permisif jika sesuai dengan kasus penggunaan Anda. Kebijakan yang lebih ketat mungkin akan dilanggar tanpa pemberitahuan.
Contoh kode
Berikut adalah contoh kode AdSense dengan CSP ketat:
<script nonce="${nonce}" async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=i-gno/re-d1234&host=ca-host-pub-5678" crossorigin="anonymous">
</script>
<ins class="adsbygoogle"
style="display:inline-block;width:728px;height:90px"
data-ad-client="i-gno/re-d1234"
data-ad-host="ca-host-pub-5678">
</ins>
<script nonce="${nonce}">
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
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.