HTTP güvenlik başlıkları

Web sitenizin HTTP güvenlik başlıklarının doğru yapılandırılıp yapılandırılmadığını kontrol edin.

Başlık kontrolü nasıl çalışır

Araç, girdiğiniz URL'ye normal bir HTTPS GET isteği gönderir ve yanıt başlıklarını okur - her tarayıcının aldığı başlıkların aynısını. Sayfa gövdesinden hiçbir şey ayrıştırılmaz; güvenlik başlıkları tamamen HTTP yanıtında bulunur.

Ardından tarayıcı tarafındaki korumaları yöneten başlıkları ararız: Strict-Transport-Security (HSTS), Content-Security-Policy (CSP), X-Frame-Options, X-Content-Type-Options ve Referrer-Policy. Mevcut her başlık puana katkı sağlar; eksik olanlar ise açık bıraktıkları riskin açıklamasıyla birlikte listelenir.

Kontrol yönlendirmeleri izlediği için sonuç son URL'yi yansıtır. Siteniz HTTP'den HTTPS'e veya kök alan adından www'ye yönlendiriyorsa, gördüğünüz başlıklar hedefe aittir.

Sonuçlar nasıl okunur

Puan hızlı bir yön göstergesidir, bir sertifikasyon değildir. Pratikte önemli olanlar:

Sık karşılaşılan sorunlar

Başlık yapılandırılmış ama eksik olarak bildiriliyor. Uygulamanızın önündeki bir ters proxy veya CDN, başlıkları kaldırabilir veya geçersiz kılabilir. Hangi katmanın düşürdüğünü bulmak için yanıtı curl -I ile doğrudan origin'e ve genel URL'ye karşı karşılaştırın.

CSP mevcut ama etkisiz. Content-Security-Policy-Report-Only ihlalleri yalnızca günlüğe kaydeder, hiçbir şeyi engellemez. Test için yararlıdır ancak koruma sağlamaz - rapor günlüğünüz temizlendiğinde zorlayıcı başlığa geçin.

Farklı rotalar farklı başlıklar döndürüyor. Uygulama ara katmanında (middleware) ayarlanan başlıklar, web sunucusunun doğrudan sunduğu statik dosyalara veya hata sayfalarına uygulanmayabilir. Bir statik dosya URL'sini ve bir 404 sayfasını da test edin.

Sıkça sorulan sorular

Her web sitesinde hangi güvenlik başlıkları olmalı?

Makul bir temel: Strict-Transport-Security, Content-Security-Policy, X-Content-Type-Options: nosniff, Referrer-Policy ve X-Frame-Options veya CSP frame-ancestors ile çerçeve koruması. API'ler ayrıca hassas yanıtlarda Cache-Control: no-store'dan yararlanır.

X-XSS-Protection başlığı hâlâ gerekli mi?

Hayır. Modern tarayıcılar bu başlığın yönettiği XSS denetleyicisini kaldırdı; eski tarayıcılarda ise başlık güvenlik açıklarına bile yol açabiliyordu. Bunun yerine sıkı bir Content-Security-Policy kullanın.

HSTS ilk ziyareti korur mu?

Tek başına korumaz - tarayıcı kuralı yalnızca ilk HTTPS yanıtından öğrenir. İlk ziyareti kapsamak için alan adınızı HSTS ön yükleme listesine (hstspreload.org) gönderin ve preload yönergesini includeSubDomains ile birlikte kullanın.

Yanlış bir başlık sitemi bozabilir mi?

Evet, iki klasik durum: aşırı sıkı bir CSP kendi betiklerinizi veya satır içi stillerinizi engeller; includeSubDomains'li HSTS ise hâlâ düz HTTP üzerinde çalışan tüm alt alan adlarını bozar. CSP'yi önce report-only modunda yayına alın ve HSTS'e kısa bir max-age ile başlayın.

Başlık değişikliklerini sürekli izleyin

ePulz.io bir başlık değiştiğinde sizi uyarır (örneğin CSP'yi yanlışlıkla kaldıran bir deploy sonrası).

ePulz.io ile başlayın →

Bu araç hakkında

Güvenlik başlıkları, tarayıcıya ziyaretçilerinizi nasıl koruyacağını söyler. Bu denetim; HSTS, Content-Security-Policy, X-Frame-Options, X-Content-Type-Options ve Referrer-Policy başlıklarının gerçekten mevcut olup olmadığını gösterir ve sonucu puanlar; böylece bir dağıtımdan sonra clickjacking ve MIME-sniffing açıklarını yakalayabilirsiniz.