Kontrol ettiğimiz altı başlık
- Strict-Transport-Security (HSTS): tarayıcıya bu adresi bundan sonra yalnızca HTTPS ile açmasını söyler. Düz http üzerinden gelirse tarayıcı onu yok sayar.
- Content-Security-Policy (CSP): betiklerin, stillerin, çerçevelerin ve diğer kaynakların nereden yüklenebileceğini sınırlar. Report-Only sürümü yalnızca ihlalleri raporlar, hiçbir şeyi engellemez.
- X-Content-Type-Options: geçerli tek değer nosniff. Tarayıcının dosya türünü tahmin etmesini durdurur; yanlış türle gelen betik ve stil dosyalarını reddettirir.
- X-Frame-Options ya da CSP frame-ancestors: başka sitelerin sayfanı çerçeve içinde açmasını engeller (clickjacking). X-Frame-Options meta etiketinde işe yaramaz; başlık olarak gönderilmeli.
- Referrer-Policy: Referer başlığıyla diğer sitelere sayfa adresinin ne kadarının gideceği.
- Permissions-Policy: sitenin kullanmadığı kamera, mikrofon, konum gibi tarayıcı özelliklerini kapatır.
Sonuç nasıl okunur?
Tamam: başlık ayarlı ve işini yapıyor. Düzelt: eksik ya da değiştirmeye değecek kadar zayıf. Not: isteğe bağlı ya da tercih meselesi; satır içi betiklere izin veren bir CSP, yalnızca rapor eden bir politika, ya da tarayıcı varsayılanı zaten makulken ayarlanmamış Referrer-Policy.
Değerlendirmeler tam raporun güvenlik bölümüyle aynı kuralları kullanıyor. HSTS 180 günün altında kısa sayılıyor; MDN, HSTS preload için en az bir yıl (31536000 saniye) ve includeSubDomains gerektiğini belirtiyor.
Sık yapılan düzeltmeler
- nginx: server bloğuna add_header satırları ekle; hata sayfalarında da gönderilmesi için always parametresiyle. Örnek: add_header X-Content-Type-Options "nosniff" always;
- Apache: sanal sunucuya ya da .htaccess dosyasına Header always set satırları (mod_headers açık olmalı).
- Cloudflare: HSTS'nin kendi anahtarı SSL/TLS > Edge Certificates sayfasında.
- CSP'ye Report-Only modunda başla, raporları bir süre oku, sonra aynı politikayı Content-Security-Policy olarak etkinleştir.
- includeSubDomains ekleyeceksen HSTS'yi ancak tüm alt alan adları HTTPS ile çalışırken gönder. Tarayıcılar onu max-age saniye boyunca hatırlar.
Bu başlıklar neyi yapmaz?
Başlıklar bazı saldırıları tarayıcı tarafında zorlaştırır. Güncel olmayan bir eklentiyi, zayıf bir şifreyi ya da açığı olan bir sunucuyu düzeltmez. AdSense ve Google Arama bu başlıklar için bir şart yayımlamıyor; amaç ziyaretçiyi ve kendi siteni korumak.