Panduan
Cara Memperbaiki Header Keamanan HTTP yang Hilang
Ketiadaan header keamanan HTTP penting membuat aplikasi web rentan terhadap serangan cross-site scripting (XSS), clickjacking, penurunan protokol, dan pencurian sesi login.
Aktifkan Strict-Transport-Security berdurasi satu tahun beserta preload, terapkan Content-Security-Policy yang ketat, gunakan X-Content-Type-Options: nosniff, dan atur frame-ancestors 'none'.
Mendiagnosis dan memeriksa header respons saat ini
Sebelum melakukan perubahan konfigurasi pada server, periksa header respons HTTP yang aktif menggunakan perintah curl -IL atau alat pemindai keamanan otomatis. Identifikasi di mana terminasi TLS dan injeksi header berlangsung: pada server asal (Nginx, Apache), reverse proxy, atau edge CDN agar header tidak terhapus di tengah jalan.
Menerapkan Strict-Transport-Security (HSTS) secara bertahap dan aman
HSTS memaksa peramban untuk hanya berkomunikasi melalui koneksi HTTPS yang aman, sehingga meniadakan potensi serangan man-in-the-middle (MitM). Pada tahap uji coba awal, gunakan max-age=86400 (satu hari). Setelah seluruh subdomain dan aset berfungsi stabil di HTTPS, alihkan ke konfigurasi produksi: max-age=31536000; includeSubDomains; preload.
Merancang kebijakan Content Security Policy (CSP) yang kokoh
CSP membatasi secara ketat sumber daya mana saja yang diizinkan mengeksekusi skrip di dalam peramban. Mulailah dengan header Content-Security-Policy-Report-Only untuk mencatat pelanggaran tanpa mengganggu fungsionalitas situs. Mulai dari default-src 'self', manfaatkan token acak (nonce) atau hash SHA-256 untuk menggantikan 'unsafe-inline', dan kunci frame-ancestors.
Mencegah serangan Clickjacking, MIME-sniffing, dan kebocoran referrer
Cegah pihak tidak bertanggung jawab menyematkan situs Anda ke dalam iframe tersembunyi dengan menyetel frame-ancestors 'none' di dalam CSP serta X-Frame-Options: DENY untuk peramban lawas. Gunakan X-Content-Type-Options: nosniff untuk memblokir penafsiran tipe MIME yang tidak aman dan terapkan Referrer-Policy: strict-origin-when-cross-origin.
Implementasi tingkat web server dan verifikasi sintaksis
Pada Nginx, definisikan aturan di dalam blok server HTTPS menggunakan direktif add_header beserta parameter always (contoh: add_header X-Content-Type-Options "nosniff" always;) agar header tetap terkirim saat respons kesalahan 4xx atau 5xx terjadi. Pada Apache, gunakan Header always set. Uji sintaksis dengan nginx -t dan muat ulang layanan dengan aman.
Header keamanan: Kontrol HTTPS, CSP, perlindungan clickjacking, MIME, referrer, dan isolasi browser.
Mulai audit gratis →