Security Headers untuk Website: Mana yang Penting dan Kenapa?
Sebuah website bisa terlihat rapi, cepat, dan sudah menggunakan HTTPS, tetapi masih memiliki konfigurasi browser yang terlalu longgar. Di sinilah HTTP security headers ikut berperan. Bentuknya hanya beberapa baris respons server, tetapi setiap baris memberi instruksi tambahan kepada browser.
Perlu diingat, header bukan pengganti validasi input, update dependensi, atau desain aplikasi yang aman. Ia adalah lapisan perlindungan tambahan, bukan tameng yang menyelesaikan semua persoalan.
Mulai dari X-Content-Type-Options
Header berikut termasuk yang paling mudah diterapkan:
X-Content-Type-Options: nosniff
Tujuannya membatasi perilaku browser menebak jenis konten yang berbeda dari MIME type yang dikirim server. Untuk aplikasi modern, respons aset seharusnya sudah punya Content-Type yang benar. nosniff membantu menghindari perilaku penafsiran yang tidak diharapkan pada konteks tertentu.
Mengendalikan informasi referer
Ketika seseorang mengklik tautan menuju situs lain, browser dapat mengirim informasi dari halaman asal. Kebijakan berikut sering menjadi pilihan dasar yang masuk akal:
Referrer-Policy: strict-origin-when-cross-origin
Dengan kebijakan ini, tautan lintas origin umumnya tidak membawa seluruh path halaman. Perhatikan bahwa kebutuhan analitik dan integrasi tertentu tetap perlu diuji, terutama jika kamu sebelumnya bergantung pada data referer yang sangat rinci.
Mencegah website ditampilkan dalam frame
Kalau website tidak pernah perlu tampil di dalam iframe milik pihak lain, kamu dapat membatasi embedding menggunakan kebijakan:
X-Frame-Options: DENY
Pendekatan modern yang lebih fleksibel tersedia melalui Content-Security-Policy: frame-ancestors 'none'. Dua mekanisme ini berurusan dengan risiko seperti clickjacking. Pilih konfigurasi sesuai dukungan browser dan kebutuhan aplikasi; jangan pasang larangan jika memang ada fitur sah yang mengandalkan iframe.
Content Security Policy butuh perhatian khusus
CSP memungkinkan kita menentukan dari mana skrip, style, gambar, dan frame dapat dimuat. Secara konsep, prinsipnya adalah hanya izinkan sumber yang benar-benar dibutuhkan.
Masalahnya, CSP yang terlalu ketat dapat memblokir komentar, analytics, atau script AdSense. Sebaliknya, CSP yang terlalu permisif kehilangan banyak manfaat. Karena itu, mulailah dari mode Content-Security-Policy-Report-Only, amati laporan, lalu buat kebijakan yang benar-benar cocok dengan situs.
Hindari sekadar menambahkan unsafe-inline atau mengizinkan seluruh domain secara luas hanya agar error browser menghilang. Lebih baik perbaiki cara script dimuat.
HSTS bukan pengaturan coba-coba
Strict-Transport-Security memberi tahu browser agar koneksi ke domain menggunakan HTTPS selama periode tertentu. Ini bagus ketika HTTPS sudah benar di seluruh bagian situs, tetapi bisa merepotkan kalau sertifikat atau subdomain belum siap.
Jangan langsung mengaktifkan includeSubDomains atau preload hanya karena terlihat aman. Pastikan seluruh domain terkait memang siap menggunakan HTTPS secara konsisten.
Cara mengecek hasilnya
Buka Developer Tools di browser, pilih tab Network, dan periksa response headers dari halaman yang dimuat. Lakukan pula pengujian fungsi: pencarian, komentar GitHub, gambar, formulir, dan integrasi lain.
Website aman bukan yang memiliki daftar header paling panjang. Website aman adalah yang konfigurasinya dipahami, diuji, dan dipelihara ketika kebutuhan berubah.



