Web Application Security Fundamentals #10: Security Headers
Konfigurasikan CSP, HSTS, nosniff, Referrer-Policy, frame protection, dan Permissions-Policy berdasarkan kebutuhan aplikasi.
Security header dapat memperkuat browser, tetapi copy-paste policy tanpa memahami aplikasi sering mematahkan fitur atau memberi rasa aman palsu.
Etika dan scope: praktikkan hanya pada local lab, aplikasi milik sendiri, atau sistem yang memberikan izin tertulis. Tutorial ini tidak mengizinkan pengujian terhadap target publik.

Tujuan pembelajaran
- memahami fungsi header utama
- menerapkan CSP secara bertahap
- menghindari header deprecated dan konfigurasi konflik
- memverifikasi header pada response aktual
Prasyarat
Gunakan browser modern, Developer Tools, dan local lab. Catat versi tool serta environment ketika menguji. Output contoh bersifat ilustratif kecuali dinyatakan sebagai hasil pengujian; jangan menganggap perilaku satu stack berlaku universal.
1. Inventaris resource dan embedding
Catat script, style, image, font, frame, connection, form destination, dan third-party origin. Tanpa inventory, CSP mudah terlalu longgar.
2. Content-Security-Policy
Mulai dengan Content-Security-Policy-Report-Only, analisis report, perbaiki inline code, lalu enforce. Hindari unsafe-inline dan wildcard luas tanpa alasan.
Contoh awal yang harus disesuaikan:
Content-Security-Policy: default-src 'self'; object-src 'none'; base-uri 'self'; frame-ancestors 'none'
CSP adalah defense in depth terhadap XSS, bukan pengganti output encoding dan secure coding.
3. HSTS
HSTS hanya dikirim melalui HTTPS. Pilih max-age, includeSubDomains, dan preload secara sadar. Baca kembali risiko pada tutorial TLS.
4. MIME sniffing
X-Content-Type-Options: nosniff
Pastikan server mengirim Content-Type yang benar. Header ini bukan alasan untuk membiarkan MIME type salah.
5. Clickjacking
Gunakan CSP frame-ancestors sebagai control modern. X-Frame-Options dapat dipertahankan untuk compatibility tertentu. Tentukan apakah halaman boleh di-frame oleh self, partner tertentu, atau tidak sama sekali.
6. Referrer dan browser capability
Referrer-Policy: strict-origin-when-cross-origin
Permissions-Policy: camera=(), microphone=(), geolocation=()
Permissions-Policy harus sesuai fitur; menonaktifkan camera tentu merusak aplikasi video call.
7. Header yang tidak perlu
Jangan menambah header usang hanya karena scanner lama memintanya. Verifikasi status di MDN dan OWASP. Hapus information disclosure yang tidak diperlukan, tetapi jangan berharap menyembunyikan version string menggantikan patching.
8. Verifikasi
curl -sSI https://example.test/
Periksa berbagai route dan error response, bukan hanya homepage. CDN, proxy, dan application dapat menghasilkan header berbeda.
Kesalahan umum
- CSP langsung enforce tanpa observasi.
- Policy mengizinkan terlalu banyak origin.
- HSTS diterapkan pada subdomain yang belum siap.
- Header hanya ada pada status 200.
- Menganggap nilai scanner sebagai proof keamanan.
Quality gate sebelum diterapkan
- [ ] Scope dan asset sudah jelas.
- [ ] Control dijalankan di sisi yang menjadi security boundary.
- [ ] Positive test dan negative test tersedia.
- [ ] Error tidak membocorkan secret atau detail internal.
- [ ] Logging cukup untuk detection tanpa merekam credential.
- [ ] Versi dependency dan dokumentasi dicatat.
- [ ] Tidak ada klaim “100% aman”.
- [ ] Perubahan diuji pada staging atau local lab.
Kesimpulan
Header adalah salah satu control. Berikutnya kita memilih tools security testing dan memahami batas setiap jenis tool.
Referensi resmi
- OWASP Top 10:2025 — diakses 22 Agustus 2026.
- OWASP Cheat Sheet Series — diakses 22 Agustus 2026.
- OWASP Web Security Testing Guide — Stable — diakses 22 Agustus 2026.
- MDN Web Security — diakses 22 Agustus 2026.
Post Terkait
Web Application Security Fundamentals #11: Tools Dasar Web Security Testing
Gunakan browser DevTools, curl, proxy, scanner, SAST, SCA, secret scanning, dan WSTG secara aman sesuai fungsi serta bat...
Membangun SOC yang Lebih Kuat Dimulai dari Security Tools yang Tepat
SOC modern tidak bergantung pada satu platform. Pelajari peran SIEM, SOAR, XDR, NDR, Threat Intelligence, dan open-sourc...
Web Application Security Fundamentals #09: HTTPS, TLS, dan Certificate
Pahami apa yang dilindungi HTTPS, certificate validation, HSTS, mixed content, TLS termination, serta batas perlindungan...