Cara Konfigurasi Content Security Policy (CSP) di Nginx dan Apache

Implementasi Content Security Policy (CSP)

Content Security Policy (CSP) adalah lapisan keamanan tambahan yang membantu mendeteksi dan memitigasi jenis serangan tertentu, termasuk Cross-Site Scripting (XSS) dan injeksi data. Dengan menentukan domain mana yang diizinkan untuk memuat konten, Anda dapat membatasi eksekusi skrip berbahaya.

Konfigurasi pada Nginx

Untuk menerapkan CSP di Nginx, tambahkan direktif add_header di dalam blok server atau location pada file konfigurasi Anda (biasanya di /etc/nginx/sites-available/default atau nginx.conf).

server {
    listen 80;
    server_name example.com;

    add_header Content-Security-Policy "default-src 'self'; script-src 'self' https://trusted.cdn.com;";
}

Setelah menambahkan kode tersebut, lakukan pengecekan sintaks dengan perintah nginx -t dan muat ulang layanan menggunakan systemctl reload nginx.

Konfigurasi pada Apache

Pada Apache, Anda memerlukan modul mod_headers. Pastikan modul tersebut aktif dengan menjalankan a2enmod headers, lalu tambahkan baris berikut ke dalam file konfigurasi virtual host atau file .htaccess.

<IfModule mod_headers.c>
    Header set Content-Security-Policy "default-src 'self'; script-src 'self' https://trusted.cdn.com;"
</IfModule>

Simpan perubahan dan restart Apache dengan perintah systemctl restart apache2.

Tabel Perbandingan Implementasi

FiturNginxApache
ModulBawaan (Core)mod_headers
Lokasi Filenginx.conf / sites-availablehttpd.conf / .htaccess
Perintahadd_headerHeader set
Reloadnginx -s reloadsystemctl restart apache2

Tips Troubleshooting

  • Gunakan CSP Evaluator: Gunakan alat dari Google (csp-evaluator.withgoogle.com) untuk memvalidasi kebijakan Anda.
  • Mode Report-Only: Gunakan Content-Security-Policy-Report-Only untuk menguji kebijakan tanpa memblokir konten secara langsung.
  • Cek Konsol Browser: Jika konten terblokir, periksa tab 'Console' di browser untuk melihat pelanggaran kebijakan yang terjadi.