Pemeriksa Header Keamanan

Tempel header respons sebuah halaman —curl -sI https://your-site.example/di terminal, atau blok dari panel Network peramban — dan dapatkanNilai A+ hingga Fpada daftar periksa Header Aman OWASP:Strict-Transport-Security, Content-Security-Policy, X-Content-Type-Options, perlindungan pembingkaian,Referrer-Policy, Permissions-Policy, trio isolasi lintas-asal, kebocoran versi, header yang sudah usang, dan flag cookie — setiap temuan dipasangkan dengan tepatnginx, Apache, dan Expressbaris yang memperbaikinya. Semua berjalan di browser Anda; halaman ini tidak pernah menghubungi situs Anda.
Baris status bersifat opsional. Semua baris Set-Cookie diperiksa. Untuk memiliki kebijakan yang dinilai sejak awal, buat satu di pembuat CSP; untuk membongkar blok header baris demi baris, gunakan pengurai header HTTP.
Belum ada nilai. Tempel header respons dan tekan Periksa header, atau muat contoh.
Baris perbaikan untuk setiap temuan akan muncul di sini setelah pemeriksaan.
Ruang lingkup pemeriksa ini dibandingkan dengan Pemeriksaan Keamanan SSL. Halaman ini menilai header respons keamanan (daftar OWASP di atas). Pemeriksaan Keamanan SSL menilai pengaturan HTTPS: rantai sertifikat, versi protokol, kekuatan cipher, dan konten campuran. HSTS dan flag cookie muncul di kedua halaman karena kedua daftar menyertakannya, tetapi dengan sudut pandang yang berbeda - jalankan kedua pemeriksaan untuk gambaran lengkap.
Uji mandiri
Menjalankan ulang penilai terhadap blok header tetap: contoh baik di A+, contoh buruk di F dengan setiap pengurangan terpicu, setiap aturan secara terisolasi (aritmetika skor), batas kebocoran versi, saran cookie, catatan kualitas CSP, frame-ancestors dihitung sebagai perlindungan pembingkaian, ambang nilai di kedua sisi setiap batas, cuplikan perbaikan, dan jalur negatif. Tidak ada yang dikirim ke mana pun.
Apa itu header keamanan?
Dalam satu kalimat: header keamanan adalah header respons yang menginstruksikan peramban untuk menerapkan perlindungan yang tidak dapat ia tentukan sendiri — jangan pernah memuat skrip dari asal yang tidak dikenal, jangan pernah berbicara HTTP biasa ke host ini lagi, jangan pernah membingkai halaman ini — dan masing-masing hanya memerlukan satu baris konfigurasi.
Header yang dinilai halaman ini
HeaderMelindungi dariNilai yang direkomendasikan OWASP
Strict-Transport-Securitypenurunan protokol dan pencurian cookie pada permintaan HTTP biasa pertamamax-age=63072000; includeSubDomains
Content-Security-Policycross-site scripting, embed berbahaya, konten campurandefault-src 'self'; form-action 'self'; base-uri 'self'; object-src 'none'; frame-ancestors 'none'; upgrade-insecure-requests
X-Content-Type-Optionskebingungan MIME (skrip disajikan sebagai gambar)nosniff
X-Frame-Options / CSP frame-ancestorsclickjacking (halaman Anda dibingkai oleh penyerang)deny / 'none'
Referrer-Policymembocorkan URL (dengan token) ke situs pihak ketigano-referrer
Permissions-Policyhalaman dan embed diam-diam menggunakan kamera, mikrofon, lokasisemua fitur dinonaktifkan
Cross-Origin-Opener-Policyjendela lain yang menjangkau konteks penjelajahan Andasame-origin
Cross-Origin-Embedder-Policymemuat sumber daya yang tidak ikut serta (mengaktifkan isolasi proses)require-corp
Cross-Origin-Resource-Policysumber daya Anda di-embed oleh situs lainsame-origin
Bagaimana nilai dihitung

Mulai dari 100 dan kurangi: −25 CSP hilang, −20 HSTS hilang, −10 masing-masing untuk X-Content-Type-Options, Referrer-Policy, atau perlindungan pembingkaian apa pun yang hilang, −5 masing-masing untuk trio lintas-asal dan Permissions-Policy, −5 untuk kebocoran versi di Server/X-Powered-By (dibatasi), dan −5 untuk X-XSS-Protection bukan nol. Nilai huruf: 100 = A+, 90+ = A, 80+ = B, 70+ = C, 60+ = D, di bawahnya = F. Catatan saran (flag cookie, kontrol cache, kualitas CSP) tidak mengurangi nilai.

Kesalahan umum
  • Mengatur header pada respons yang salah. Tambahkan pada setiap respons, termasuk halaman error dan pengalihan - itulah fungsi always pada add_header ... always; (nginx) dan Header always set (Apache).
  • Hanya menguji halaman utama. Proxy, cache, dan aplikasi lama sering menghapus atau menimpa header hanya pada beberapa jalur. Periksa halaman yang penting: login, checkout, endpoint API.
  • Mempertahankan X-XSS-Protection. Auditor yang dikendalikannya menimbulkan kerentanan sendiri; peramban menghapusnya. Nilai bukan nol sekarang sengaja mengurangi skor - hapus dan biarkan CSP yang bekerja.
  • Mengira X-Frame-Options masih mutakhir. Ia tidak dapat mengizinkan asal tertentu dan tidak ada dalam standar CSP; frame-ancestors adalah penggantinya yang modern. Menyimpan keduanya selama masa transisi tidak masalah - halaman ini menerima salah satunya.
  • Mengirim banner versi. Server: Apache/2.4.58 (Unix) mempersempit pencarian penyerang akan bug yang diketahui tanpa manfaat sama sekali. Hapus versinya; jaga jumlah baris tetap sedikit.
FAQ

Mengapa COOP/COEP/CORP hanya bernilai 5 poin masing-masing? Trio ini adalah lapisan terbaru, terutama diperlukan di tempat Anda menginginkan isolasi proses (SharedArrayBuffer, pengerasan Spectre). Situs tanpanya tetap memiliki perlindungan intinya; dengan trio ini, beberapa embed lintas-asal memerlukan penyesuaian - itulah sebabnya bobotnya lebih kecil daripada CSP atau HSTS.

Apakah nilai tinggi berarti situs aman? Tidak - itu berarti header respons telah diatur. Header keamanan hanya satu lapisan: konfigurasi TLS, penanganan sesi, validasi masukan, dan penambalan tetap menentukan apakah situs benar-benar aman. Jalankan Pemeriksaan Keamanan SSL untuk lapisan TLS.

Mengapa nilai Permissions-Policy sangat panjang? Baseline OWASP mematikan setiap fitur secara eksplisit, sehingga peramban yang menambahkan fitur baru tidak diam-diam mengaktifkannya kembali. Nilai yang lebih pendek seperti camera=(), microphone=(), geolocation=() adalah awal yang baik - hanya saja ketahui apa yang masih aktif.

Bisakah header situs mana pun diperiksa dari sini? Halaman ini tidak pernah membuat permintaan jaringan - ia hanya menilai teks yang Anda tempel, jadi berfungsi di balik firewall dan pada host internal, dan tidak ada yang diperiksa yang meninggalkan mesin Anda. Mengambil header cukup dengan satu curl -sI di terminal Anda.

Bagaimana dengan Clear-Site-Data dan X-Permitted-Cross-Domain-Policies? Berguna dalam skenario sempit (respons logout; penampil PDF/Flash lama). Di sini mereka bersifat saran, tidak dinilai - mengirim Clear-Site-Data pada setiap respons akan menghapus penyimpanan pengguna pada setiap pemuatan halaman.