Cara memakai
- Ketik direktif di Kebijakan, satu per baris, dengan nama persis seperti tertulis, misalnya script-src.
- Pilih Pengiriman: Content-Security-Policy memberlakukan kebijakan, dan Content-Security-Policy-Report-Only adalah header untuk mengujinya lebih dulu.
- Baca Aturan yang berlaku, per sumber daya untuk melihat direktif mana yang menangani skrip, gaya, gambar dan bingkai.
- Salin Baris header ke server Anda, dan perbaiki setiap peringatan yang tercantum di bawah hasil.
Aturan mana yang berlaku untuk sebuah sumber daya
Peramban memeriksa setiap jenis sumber daya terhadap satu direktif. Saat direktif itu tidak ada, peramban beralih ke rantai fallback, dan tabel menunjukkan rantai yang diikutinya. Rantai ini berasal dari CSP Level 3, bagian 6.8.3.
- Skrip: script-src-elem, lalu script-src, lalu default-src.
- Penangan event sebaris: script-src-attr, lalu script-src, lalu default-src.
- Lembar gaya: style-src-elem, lalu style-src, lalu default-src. Atribut gaya sebaris mengikuti pola yang sama dengan style-src-attr.
- Bingkai: frame-src, lalu child-src, lalu default-src.
- Worker: worker-src, lalu child-src, lalu script-src, lalu default-src.
- Gambar, font, media, objek, manifes dan permintaan fetch: direktif mereka sendiri, lalu default-src.
Yang dibaca pemeriksa
Direktif dipisahkan dengan titik koma, dan alat ini juga menerima pindah baris. Nama dibaca sampai spasi pertama dan tidak membedakan huruf besar dan kecil. Ketika sebuah direktif muncul dua kali, yang pertama berlaku dan pengulangannya dilewati (CSP Level 3, bagian 2.2.1).
- Kata kunci seperti 'self' dan 'none' ditulis dalam tanda kutip tunggal. 'none' harus berdiri sendiri dalam daftarnya.
- Nonce adalah 'nonce-' diikuti nilai base64. Hash adalah sha256, sha384 atau sha512, tanda hubung, dan nilai base64 (bagian 2.3.1).
- Koma tidak diperbolehkan di dalam nilai direktif, karena koma memisahkan kebijakan dalam header.
Yang tidak dilakukan pemeriksa
- Alat ini tidak memuat halaman dan tidak menguji kebijakan di peramban. Tabel menunjukkan aturan yang akan dipakai peramban, bukan apakah halaman Anda masih berfungsi.
- Alat ini memeriksa ejaan kata kunci, nonce dan hash, tetapi tidak memeriksa sumber host dan skema secara rinci.
- Alat ini tidak menilai direktif yang tidak ada dalam daftarnya, seperti sandbox. Direktif itu tetap ada di baris header tanpa perubahan.
Contoh kerja: kebijakan contoh
Dengan kebijakan contoh, skrip memakai script-src, karena script-src-elem tidak ada. Bingkai tidak punya frame-src atau child-src, sehingga beralih ke default-src. Worker tidak punya worker-src atau child-src, sehingga memakai script-src. Direktif style-src membawa 'unsafe-inline', dan pemeriksa melaporkannya sebagai satu peringatan.
| Sumber daya | Diperiksa berurutan | Aturan yang dipakai |
|---|---|---|
| Skrip (elemen script) | script-src-elem, script-src, default-src | script-src |
| Bingkai (iframe) | frame-src, child-src, default-src | default-src |
| Worker | worker-src, child-src, script-src, default-src | script-src |
Pertanyaan yang sering diajukan
Mengapa tabel menunjukkan aturan untuk skrip yang tidak saya tulis?
Sumber daya yang tidak punya direktif sendiri memakai direktif tempat ia beralih. Untuk skrip, itu adalah script-src-elem, lalu script-src, lalu default-src. Tabel menunjukkan aturan yang akan dipakai peramban, jadi script-src yang tidak ada tetap bisa menghasilkan sebuah aturan.
Apa yang diizinkan 'unsafe-inline'?
Ia mengizinkan skrip sebaris atau gaya sebaris di tempat yang dicakup direktif itu. Nonce atau hash dalam daftar sumber yang sama membuat peramban mengabaikan 'unsafe-inline' (CSP Level 3, bagian 6.7.3.2), jadi gunakan salah satunya untuk kode sebaris yang Anda perlukan.
Sebaiknya saya menulis report-uri atau report-to?
Gunakan report-to. MDN menyebutnya sebagai direktif yang menggantikan report-uri. Selama report-to belum didukung secara luas, MDN menganjurkan mengirim keduanya, dan pemeriksa memberi peringatan jika report-uri ada.
Mengapa salah satu nama direktif saya ditandai sebagai tidak dikenal?
Pemeriksa hanya menilai direktif yang dirilis peramban dan didokumentasikan MDN. Nama yang tidak dikenalnya tetap ada di baris header tanpa perubahan, tetapi tidak ada di tabel dan tidak dinilai.
Apakah alat ini mengirim kebijakan saya ke suatu tempat?
Tidak. Header dibuat di peramban Anda. Apa pun yang Anda ketik tidak kami kirim atau simpan, dan kebijakan itu tidak diuji di situs mana pun.
Apakah CSP Level 3 sudah menjadi standar final?
Belum. Teks yang diikuti pemeriksa ini adalah Working Draft W3C tertanggal 27 Oktober 2026, sebuah draf pada jalur Recommendation. Baca versi terbaru sebelum Anda mengandalkan sebuah aturan dalam kebijakan produksi.
Sumber
- CSP Level 3, Working Draft W3C tertanggal 27 Oktober 2026 (bagian 2.2, 2.3.1, 4.4.1, 6.7.3.2 dan 6.8.3) (dalam bahasa Inggris)
- MDN (dalam bahasa Inggris): header Content-Security-Policy, direktif dan fallback-nya
Angka dan teks terakhir diperiksa pada Selasa, 10 November 2026.