Menambahkan Security Headers pada Nginx bukan hanya soal mendapatkan skor tinggi di alat pemindai seperti SecurityHeaders.com, tetapi juga tentang membangun pertahanan berlapis terhadap serangan XSS, Clickjacking, dan MIME Sniffing.
Berikut adalah konfigurasi yang direkomendasikan untuk blok server kamu:
1. Konfigurasi Standar Keamanan Tinggi
Salin dan tempel kode berikut di dalam blok server { ... } pada konfigurasi Nginx kamu:
# ====================================================
# SECURITY HEADERS REKOMENDASI (SKOR A+)
# ====================================================
# 1. Content Security Policy (CSP)
# Mengizinkan HTTPS secara luas agar CDN (Jetpack/Cloudflare) & Turnstile tetap jalan.
add_header Content-Security-Policy "default-src 'self' https: data: 'unsafe-inline' 'unsafe-eval'; frame-ancestors 'self';" always;
# 2. Strict Transport Security (HSTS)
# Mewajibkan koneksi HTTPS selama 1 tahun (termasuk subdomain & preload).
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
# 3. X-Frame-Options
# Mencegah situs ditampilkan dalam iframe orang lain (Anti-Clickjacking).
add_header X-Frame-Options "SAMEORIGIN" always;
# 4. X-Content-Type-Options
# Mencegah browser menebak-nebak tipe file (Anti-MIME Sniffing).
add_header X-Content-Type-Options "nosniff" always;
# 5. Referrer-Policy
# Melindungi privasi dengan hanya mengirim informasi referer ke sesama HTTPS.
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
# 6. Permissions-Policy
# Membatasi akses browser ke fitur hardware yang tidak diperlukan.
add_header Permissions-Policy "geolocation=(), microphone=(), camera=(), interest-cohort=()" always;
# 7. Sembunyikan Identitas Server
# Menghapus informasi versi Nginx & identitas VPS.
server_tokens off;
add_header X-Powered-By "Nginx on OrangeVPS" always;
# ====================================================2. Mengapa Memilih Konfigurasi Ini?
- CSP Fleksibel: Penggunaan
https:dandata:memastikan gambar dari CDN WordPress (seperti0.wp.com), skrip Google Analytics, dan Cloudflare Turnstile tidak terblokir. - Keamanan Clickjacking: Dengan kombinasi
X-Frame-Optionsdanframe-ancestors 'self', situs kamu terlindungi ganda dari upaya penipuan berbasis frame. - Privasi Pengguna:
Permissions-Policymemastikan browser pengunjung tidak mengaktifkan kamera atau mikrofon secara diam-diam saat mengakses blog kamu.
3. Cara Menerapkan dan Verifikasi
Setelah menyimpan konfigurasi, ikuti langkah berikut:
- Cek Penulisan: Jalankan perintah
nginx -tdi terminal untuk memastikan tidak ada kesalahan sintaks. - Muat Ulang Nginx: Jalankan
systemctl reload nginxatauservice nginx reload. - Uji Coba:
- Buka situs kamu, pastikan Cloudflare Turnstile dan gambar CDN muncul.
- Gunakan SecurityHeaders.com untuk memverifikasi skor. Anda seharusnya mendapatkan nilai A+.
Kesimpulan
Keamanan web adalah proses berkelanjutan. Dengan konfigurasi di atas, kamu telah menempatkan blog kamu di atas standar keamanan rata-rata tanpa mengorbankan pengalaman pengguna atau kecepatan loading dari CDN.

