Generator Content Security Policy (CSP)

Susun Content-Security-Policy per direktif, ekspor sebagai header, meta tag, konfigurasi Nginx atau Apache, dan dapatkan peringatan untuk pengaturan yang tidak aman.

Header respons HTTP
Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self' data:; connect-src 'self'; font-src 'self'; object-src 'none'; base-uri 'self'; form-action 'self'; frame-ancestors 'none'; upgrade-insecure-requests
Evaluasi kebijakan
Pemeriksaan bawaan tidak menemukan masalah.
Tag HTML <meta>
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self' data:; connect-src 'self'; font-src 'self'; object-src 'none'; base-uri 'self'; form-action 'self'; upgrade-insecure-requests">
frame-ancestors, report-uri, report-to, dan sandbox tidak berlaku di tag <meta>, jadi tidak disertakan – kirim header HTTP untuk memakainya.
Nginx
add_header Content-Security-Policy "default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self' data:; connect-src 'self'; font-src 'self'; object-src 'none'; base-uri 'self'; form-action 'self'; frame-ancestors 'none'; upgrade-insecure-requests" always;
Apache (.htaccess)
Header always set Content-Security-Policy "default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self' data:; connect-src 'self'; font-src 'self'; object-src 'none'; base-uri 'self'; form-action 'self'; frame-ancestors 'none'; upgrade-insecure-requests"
Impor kebijakan yang sudah ada
Mulailah dengan mode report-only (Content-Security-Policy-Report-Only) dan pantau konsol browser sebelum memberlakukan kebijakan baru. Pemeriksaan di sini bersifat statis dan mengikuti aturan evaluator CSP yang umum; tidak bisa melihat skrip asli di halaman Anda.

Apa itu Generator CSP?

Generator CSP ini membantu Anda menulis Content-Security-Policy yang membatasi asal pemuatan skrip, gaya, gambar, frame, dan sumber daya lainnya. Alat ini dimulai dari kebijakan yang ketat, memungkinkan Anda mengedit setiap direktif, dan mengevaluasi hasilnya secara langsung, dengan peringatan atas kelemahan seperti 'unsafe-inline', sumber skrip wildcard, object-src atau base-uri yang hilang, dan kata kunci tanpa tanda kutip. Anda juga bisa mengimpor kebijakan yang sudah ada.

Cara menggunakan Generator CSP

  1. Mulai dari Kebijakan awal yang ketat atau Hapus semua.
  2. Edit sumber setiap direktif, misalnya 'self' https://cdn.example.com.
  3. Aktifkan upgrade-insecure-requests dan tambahkan report-uri jika perlu.
  4. Baca evaluasi kebijakan dan perbaiki temuan tingkat tinggi dan sedang.
  5. Salin kebijakan sebagai header HTTP, meta tag, baris Nginx atau Apache; atau impor kebijakan yang sudah ada untuk dianalisis.

Contoh

Masukan
Strict starter policy
Keluaran
Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self' data:; connect-src 'self'; font-src 'self'; object-src 'none'; base-uri 'self'; form-action 'self'; frame-ancestors 'none'; upgrade-insecure-requests

Kapan menggunakan Generator CSP

Gunakan untuk menyusun draf atau meninjau CSP sebelum diterapkan. Luncurkan kebijakan baru dengan Content-Security-Policy-Report-Only terlebih dahulu dan pantau pelanggarannya, karena kebijakan yang ketat akan merusak skrip inline dan widget pihak ketiga yang lupa Anda izinkan. Pemeriksaannya bersifat statis dan tidak bisa melihat skrip apa yang benar-benar dimuat halaman Anda.

Cara kerja Generator CSP

Direktif diserialisasi dalam urutan tetap sebagai name source source; …, dengan melewati yang kosong. Evaluasi menerapkan aturan statis yang mirip dengan CSP Evaluator milik Google: kata kunci seperti self atau none harus diberi tanda kutip; script-src (atau default-src sebagai cadangan) tanpa nonce/hash yang berisi 'unsafe-inline', 'unsafe-eval', *, http:, https:, atau data: ditandai; object-src sebaiknya 'none'; base-uri, frame-ancestors, dan form-action sebaiknya diatur. Versi meta tag menghilangkan frame-ancestors, report-uri, report-to, dan sandbox, yang diabaikan browser di meta tag.

Kasus Penggunaan Umum

  • Membuat CSP ketat pertama untuk situs baru.
  • Mengaudit kebijakan yang disalin dari produksi untuk 'unsafe-inline' dan wildcard.
  • Menambahkan host analitik atau CDN ke script-src dengan benar.
  • Mendapatkan baris add_header Nginx yang tepat untuk sebuah kebijakan.

Pertanyaan Umum

Mengapa 'unsafe-inline' menjadi masalah?

Direktif ini mengizinkan skrip inline apa pun, termasuk yang disisipkan melalui celah XSS, sehingga menggagalkan tujuan utama CSP. Gunakan nonce atau hash sebagai gantinya.

Header atau meta tag?

Utamakan header HTTP. Meta tag tidak bisa memakai frame-ancestors, report-uri, atau sandbox, dan hanya berlaku untuk konten setelahnya.

Bagaimana cara menguji tanpa merusak situs saya?

Kirim kebijakan yang sama sebagai Content-Security-Policy-Report-Only; browser melaporkan pelanggaran di konsol tanpa memblokir apa pun.

Jelajahi kategori lainnya