Content Security Policy meta http-equiv
Tetapkan Content Security Policy melalui meta http-equiv.
Content Security Policy meta http-equiv adalah pelajaran HTML Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar HTML Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus HTML Academy mencakup 4 pelajaran total.
Apa Itu CSP?
Kebijakan Keamanan Konten adalah kebijakan yang diberlakukan peramban untuk membatasi sumber daya mana yang dapat dimuat dan dijalankan oleh halaman. Ini merupakan pertahanan terkuat terhadap Scripting Lintas Situs: meskipun penyerang menyisipkan tag <script>, peramban menolak menjalankannya kecuali kebijakan mengizinkannya.
Dua Cara Penyampaian
CSP dapat dikirim sebagai header respons HTTP (Content-Security-Policy: ...) atau sebagai tag meta dalam HTML: <meta http-equiv="Content-Security-Policy" content="...">. Header lebih disarankan; tag meta berguna ketika Anda tidak dapat mengendalikan peladen.
<meta http-equiv="Content-Security-Policy"
content="default-src 'self'; script-src 'self' https://cdn.example.com">Direktif Umum
default-src menjadi sumber cadangan untuk jenis sumber daya yang tidak ditentukan. script-src, style-src, img-src, connect-src (XHR/fetch), font-src, dan frame-src masing-masing membatasi jenisnya. Masukkan asal tertentu ke daftar izin atau gunakan 'self' agar hanya asal yang sama yang diizinkan.
Kata Kunci self
'self' (diapit tanda kutip) merujuk pada asal halaman itu sendiri. script-src 'self' berarti "hanya jalankan skrip yang dihosting pada asal yang sama dengan halaman". Ini merupakan dasar bagi sebagian besar kebijakan; tambahkan CDN eksternal tertentu jika diperlukan.
Memblokir Skrip Sebaris
Secara bawaan, CSP memblokir semua tag <script> sebaris dan atribut penangan peristiwa (onclick). Ini adalah perlindungan XSS terkuat: <script> yang disisipkan tidak dapat dijalankan karena berada sebaris. Pindahkan semua skrip ke berkas eksternal yang dirujuk oleh src.
Nonce dan Hash
Untuk skrip sebaris yang diperlukan, gunakan nonce: peladen membuat token acak untuk setiap permintaan, menetapkannya sebagai script-src 'nonce-RANDOM' dalam CSP, lalu menambahkan nonce="RANDOM" ke tag <script> yang sah. Skrip yang disisipkan tidak memiliki nonce tersebut sehingga diblokir.
<meta http-equiv="Content-Security-Policy"
content="script-src 'nonce-abc123'">
<script nonce="abc123">// allowed</script>
<script>// blocked — no nonce</script>unsafe-inline dan unsafe-eval
'unsafe-inline' mengizinkan kembali skrip dan gaya sebaris. 'unsafe-eval' mengizinkan kembali eval() dan new Function(). Keduanya sangat melemahkan CSP—gunakan hanya sebagai pilihan terakhir selama migrasi, lalu rencanakan untuk menghapusnya.
Keterbatasan Tag Meta
CSP yang dikirim melalui tag meta tidak dapat menggunakan direktif report-uri (atau fitur pelaporan lainnya). CSP juga mulai berlaku lebih lambat daripada header—apa pun yang muncul sebelum tag meta tidak terlindungi. Header jauh lebih baik; gunakan meta hanya sebagai cadangan.
Mode Hanya Laporan
Uji kebijakan baru tanpa merusak situs: Content-Security-Policy-Report-Only: .... Peramban melaporkan pelanggaran tanpa memblokirnya, sehingga Anda dapat menyempurnakan kebijakan sampai semua sumber daya yang sah diizinkan sebelum mengaktifkan penerapannya.
Kesalahan Umum
Lupa bahwa style-src 'unsafe-inline' diperlukan akan memblokir gaya sebaris (yang sering dihasilkan oleh kerangka kerja). Lupa menambahkan connect-src akan memblokir AJAX ke API. Selalu uji kebijakan dalam mode hanya laporan terlebih dahulu dan periksa konsol untuk melihat sumber daya yang diblokir.
Strategi CSP Modern
CSP ketat menggabungkan script-src 'nonce-RANDOM' 'strict-dynamic' untuk skrip, ditambah daftar izin yang ketat untuk hal lainnya. 'strict-dynamic' memungkinkan skrip yang memiliki nonce memuat skrip lain tanpa mencantumkan masing-masing skrip—jauh lebih mudah dipelihara daripada daftar izin per asal.
Uji Pemahaman
Bagaimana CSP melindungi dari serangan XSS meskipun penyerang berhasil menyisipkan tag skrip?
Ringkasan
CSP adalah kebijakan yang diberlakukan peramban untuk membatasi skrip, gaya, gambar, dan sumber daya lain yang dapat dimuat. Kirim melalui header respons (lebih disarankan) atau tag meta. Gunakan nonce untuk skrip sebaris yang diperlukan, hindari unsafe-inline/unsafe-eval, dan lakukan pengujian dalam mode hanya laporan terlebih dahulu. CSP ketat dengan 'nonce-X' 'strict-dynamic' adalah dasar modern.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Content Security Policy meta http-equiv” gratis?
Ya — teks lengkap “Content Security Policy meta http-equiv” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus HTML Academy, upgrade ke CoddyKit PRO. Kursus HTML Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Content Security Policy meta http-equiv”?
Tetapkan Content Security Policy melalui meta http-equiv. Kamu berlatih HTML Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai HTML Academy?
Tidak diperlukan pengalaman sebelumnya. HTML Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.
Berapa lama pelajaran “Content Security Policy meta http-equiv” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran HTML Academy ini?
Ya. Setiap pelajaran HTML Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Content Security Policy meta http-equiv
- XSS melalui innerHTML dan Cara Mencegahnya
- Sandbox iframe dan Permissions Policy
- HTTPS dan Integritas Subresource