HTTP Güvenlik Başlıkları Kontrolü
Bir sitenin güvenlik başlıklarını ve çerezlerini notlandırın, eklenecek başlık satırlarını alın ve aynı kontrolün onayladığı bir Content-Security-Policy oluşturun.
İlgili araçlar
- TLS KontrolüBir sitenin TLS sertifikasını, bitiş tarihini, düzenleyenini ve anlaşılan protokolü, indirebileceğiniz bir yenileme takvimi ve tam raporla inceleyin.
- Yönlendirme Kontrolühttp ve https'ten, www ile ve www olmadan, son URL'ye kadar yönlendirmeleri izleyin; döngüleri ve fazladan atlamaları bulun.
- SEO Meta VerileriBir sayfanın başlık, açıklama, kanonik, robots ve Open Graph etiketlerini kontrol edin.
- Alan Adı SağlığıDNS, e-posta kimlik doğrulaması, TLS, güvenlik başlıkları ve yönlendirmeler için tek kontrol; her alan için bir not ve tam rapor.
Bu araç hakkında
HTTP Başlıkları, sayfanızı HTTPS üzerinden ister, yönlendirmeleri izler ve sonunda yanıt veren sayfanın yanıt başlıklarını okur. Ziyaretçileri koruyan altı başlığı notlandırır - Strict-Transport-Security, Content-Security-Policy, X-Content-Type-Options, X-Frame-Options, Referrer-Policy ve Permissions-Policy - her çerezin Secure, HttpOnly ve SameSite bayraklarını kontrol eder ve size nginx, Apache, Caddy ve Cloudflare için yapılandırma satırlarını verir. Content-Security-Policy bulgusunun altında, adını verdiğiniz kaynaklardan bir ilke de oluşturur ve bu ilkeyi aynı analizden yeniden geçirir; böylece oluşturucu size bu sayfanın eleştireceği bir başlık veremez. Tek bir URL'yi anonim bir ziyaretçi olarak okur: oturum açmaz, JavaScript çalıştırmaz, siteyi taramaz ve sayfa içeriğini yargılamaz; oluşturucu ise tamamen tarayıcınızda çalışır.
Girdiğiniz alan adı XGM API'sine gönderilir; API, XGM sunucusundan XGM-Web-Checks/1.0 User-Agent'ı ile https://<domain> adresini ister, adım başına 5 saniye zaman aşımıyla en fazla altı yönlendirmeyi izler ve sonunda yanıt veren sayfanın yanıt başlıklarını ve Set-Cookie satırlarını okur. Kontrol ettiğiniz site tarayıcınızı değil XGM sunucusunu görür; hiçbir JavaScript çalıştırılmaz, sayfa gövdesi puanlanmaz ve sonuçla birlikte hiçbir şey saklanmaz.
Aynı bağlantı yukarıdaki TLS sürümünü, şifre takımını ve sertifikayı bildirir; tam sertifika ve protokol taraması TLS Checker'dır. Content-Security-Policy bulgusunun altındaki CSP oluşturucu ayrı bir şeydir: tarayıcınızda çalışır, oraya yazdığınız kaynaklar hiçbir yere gönderilmez ve ürettiği politika, bu sayfanın gerçek bir başlık üzerinde yürüttüğü analizin aynısıyla kontrol edilir.
Nasıl kullanılır
- HTTP Başlıkları aracını açın.
- Kontrol etmek istediğiniz genel alan adını, ana bilgisayar adını veya IP adresini girin.
- Kontrolü çalıştırın; XGM sunucusundan sorgular ve bulguları listeler.
- Çıktıyı yalnızca doğru göründüğünü kontrol ettikten sonra kopyalayın.
- Daha geniş bir teşhis görünümü gerekiyorsa ilgili XGM araçlarını kullanın.
SSS
Puana hangi başlıklar dahil edilir?
Yukarıda listelenen altı başlık. Cache-Control, çerez bayrakları ve kalan yanıt başlıkları ayrı bulgular olarak raporlanır; çünkü doğru değer, sayfanın herkese açık mı yoksa kişiselleştirilmiş mi olduğuna bağlıdır.
CSP'm var ama yine de işaretlendi. Neden?
script-src içinde ‘unsafe-inline’ ya da ‘unsafe-eval’ izni veren veya joker bir kaynağa düşen bir politika, engellemesi gereken enjeksiyonu engellemez. Bulgu, politikayı zayıflatan yönergeyi adlandırır; böylece onu bir nonce veya hash ile değiştirebilirsiniz.
Hazır bir CSP kopyalamak yerine burada kendim yazabilir miyim?
Evet. Content-Security-Policy bulgusunun altındaki oluşturucu, sayfanın betikleri, stilleri, görselleri, yazı tiplerini, iframe'leri ve XHR isteklerini hangi kaynaklardan yüklediğini, satır içi stile ya da satır içi betiğe ihtiyaç duyup duymadığını ve nonce ile ‘strict-dynamic’ isteyip istemediğinizi sorar; sonra başlığı, nginx satırını ve Apache satırını yazar. Ardından az önce yazdığı politikayı, bu sayfanın gerçek bir başlık üzerinde yaptığı analizin aynısından geçirir; böylece ürettiği şeyde eleştirilecek bir yan varsa aynı anda eleştirilir. Önce Content-Security-Policy-Report-Only olarak gönderin, varsayılan da budur: tek bir kaynağı atlayan zorunlu bir politika, sayfayı her ziyaretçi için bozar.
HSTS'te max-age ne kadar olmalı?
Normal bir site için en az 15,552,000 saniye (180 gün); alan adını preload listesine göndermek istiyorsanız includeSubDomains ve preload ile birlikte 31,536,000 (bir yıl). Her alt alan adının HTTPS üzerinden çalıştığını doğrularken kısa bir değerle başlayın: tarayıcılar değeri hatırlar, bu yüzden uzun bir max-age'i geri almak zordur.
Başlıklar neden sunucu yapılandırmamda yazandan farklı?
Kontrol, yönlendirmelerden sonraki son yanıtı raporlar; bu yüzden kaynağınızın önündeki bir CDN, ters proxy veya WAF, çıkışta başlık ekleyebilir, değiştirebilir ya da kaldırabilir. Sonuçtaki Son URL'yi yapılandırdığınız sunucuyla karşılaştırın.
Eksik bir başlık, sitenin savunmasız olduğu anlamına mı gelir?
Hayır. Bu başlıklar katmanlı savunmadır: başka bir yerdeki bir hatanın zararını azaltırlar, böyle bir hatanın varlığını kanıtlamazlar. Bunlar olmayan bir site güvenli olabilir; altısının da bulunduğu bir sitede ise yine de bir uygulama açığı olabilir.
Tam HTTP Güvenlik Başlıkları Kontrolü rehberini okuyun (İngilizce)