Menerapkan Content Security Policy (CSP) di NGINX
Apa Itu Content Security Policy (CSP)?
Content Security Policy (CSP) adalah lapisan keamanan tambahan yang membantu mendeteksi dan mengurangi serangan seperti Cross-Site Scripting (XSS) dan injeksi data. Dengan CSP, kamu bisa menentukan sumber daya mana yang boleh dimuat oleh browser, seperti skrip, gambar, atau font. Ini membantu mencegah eksekusi kode berbahaya di situs web kamu.
Kenapa Harus Pakai CSP di NGINX?
NGINX adalah salah satu web server paling populer di dunia. Dengan menerapkan CSP di NGINX, kamu bisa meningkatkan keamanan situs web kamu dengan mudah. Selain itu, CSP juga membantu melindungi pengguna dari serangan yang mungkin terjadi karena kerentanan di sisi klien.
Cara Menerapkan CSP di NGINX
Berikut adalah langkah-langkah untuk menerapkan CSP di NGINX:
Buka File Konfigurasi NGINX
Pertama, kamu perlu membuka file konfigurasi NGINX. Biasanya, file ini berada di
/etc/nginx/nginx.conf
atau/etc/nginx/sites-available/default
. Kamu bisa menggunakan editor teks favoritmu, sepertinano
atauvim
.sudo nano /etc/nginx/sites-available/default
Tambahkan Header CSP
Di dalam blok
server
ataulocation
, tambahkan header CSP. Berikut adalah contoh sederhana:server { listen 80; server_name example.com; add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://cdn.example.com; img-src 'self' data: https://images.example.com; style-src 'self' 'unsafe-inline' https://styles.example.com; font-src 'self' https://fonts.example.com;"; }
Penjelasan:
default-src 'self'
: Hanya izinkan sumber daya dari domain yang sama.script-src
: Izinkan skrip dari domain yang sama,unsafe-inline
(skrip inline),unsafe-eval
(fungsieval
), dan darihttps://cdn.example.com
.img-src
: Izinkan gambar dari domain yang sama,data:
(URI data), dan darihttps://images.example.com
.style-src
: Izinkan gaya dari domain yang sama,unsafe-inline
(gaya inline), dan darihttps://styles.example.com
.font-src
: Izinkan font dari domain yang sama dan darihttps://fonts.example.com
.
Uji Konfigurasi NGINX
Sebelum menerapkan perubahan, pastikan konfigurasi NGINX benar dengan perintah:
sudo nginx -t
Jika tidak ada error, restart NGINX:
sudo systemctl restart nginx
Verifikasi CSP
Setelah menerapkan CSP, kamu bisa memverifikasi apakah header CSP sudah terpasang dengan benar. Kamu bisa menggunakan alat seperti SecurityHeaders.com atau CSP Evaluator untuk memeriksa konfigurasi CSP kamu.
Tips untuk CSP yang Lebih Aman
- Hindari menggunakan
unsafe-inline
danunsafe-eval
jika memungkinkan. Gunakan nonce atau hash untuk mengizinkan skrip atau gaya inline yang aman. - Batasi sumber daya eksternal hanya ke domain yang kamu percayai.
- Gunakan
report-uri
ataureport-to
untuk menerima laporan pelanggaran CSP. Ini membantu kamu memahami dan memperbaiki masalah keamanan.
Dengan menerapkan CSP di NGINX, kamu bisa meningkatkan keamanan situs web kamu dan melindungi pengguna dari serangan yang mungkin terjadi. Selamat mencoba!